Versenden von post mit json mit spray?
Sorry, ich kann nicht verwalten, um diese Arbeit zu machen: ich muss hinzufügen, dass einige json zu einem post, also nach der Dokumentation: http://spray.io/documentation/1.1-M8/spray-httpx/request-building/ :
import scala.util.{Success, Failure}
import akka.actor.{Props, ActorSystem}
import spray.can.client.DefaultHttpClient
import spray.client.HttpConduit
import spray.httpx.SprayJsonSupport
import spray.http._
import spray.json.JsonParser._
import spray.json._
import HttpMethods._
import HttpHeaders._
import MediaTypes._
import spray.httpx.RequestBuilding._
import scala.concurrent.ExecutionContext.Implicits.global
...
val req = HttpRequest(method = POST, uri = "/api/1.0/users/ping.json", entity = HttpEntity(`application/json`,"""{ "key"="whatever" }"""))
und es nie kompiliert:
overloaded method value apply with alternatives:
[error] (optionalBody: Option[spray.http.HttpBody])spray.http.HttpEntity <and>
[error] (buffer: Array[Byte])spray.http.HttpEntity <and>
[error] (string: String)spray.http.HttpEntity
[error] cannot be applied to (spray.http.MediaType, String)
[error] val req = HttpRequest(method = POST, uri = "/api/1.0/users/ping.json", entity = HttpEntity(`application/json`,"""{ "key"="whatever"}"""))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte das gleiche problem und hier die Lösung gefunden:
https://github.com/spray/spray-json/blob/master/src/main/scala/spray/json/AdditionalFormats.scala#L30-41
Diese schließlich für mich gearbeitet:
Sorry, aber deine Frage ist ein wenig umständlich, zumindest für mich. Wenn Sie möchten, machen Sie eine POST-Anforderung in Spray mit einigen Json als HttpEntity, dann sollten Sie versuchen, es zu tun mit Spray-Clients pipelining, es ist drop dead einfach.
Müssen Sie erstellen eine einfache Leitung:
erstellen und dann eine bitte:
Diese werden Sie wieder ein
Future
mitHttpResponse
, wenn Sie etwas bestimmtes Ergebnis, sagen wir zum Beispiel, einige Bestätigungs-code, fügen Sie dann unmarshall Schritt, um Ihre Rohr:Das ist, was ich versucht, aber es funktioniert nicht es wird mir sagen, dass ich bin fehlt eine implizite:
aber ich bekomme immer :
auch der import haben Sie in Ihrem vorherigen snapshot funktioniert nicht.... Bin ich mit einer schlechten version der Bibliothek? Meine sbt Einstellungen sind:
import spray.httpx.SprayJsonSupport._
. Hinweis: die nachfolgende._
"""{ "key": "whatever" }""".asJson.asJsObject
weil die Unterscheidung zwischen JsonFormat und RootJsonFormat.