/ Odoslanie požiadavky JSON pomocou Spray IO Client - json, scala, io, sprej

Odoslanie žiadosti JSON pomocou Spray IO Client - json, scala, io, sprej

Práve teraz budu budovať malý API v Scale, ktorý používa Spray.IO Framework na spracovanie požiadaviek a odpovedí.

Keď sa volá adresa URL mojej / aktualizácie, chcem zavolať iný API na spracovanie aktuálnej aktualizácie, spolu s touto požiadavkou chcem pridať niektoré údaje JSON.

Za týmto účelom používam nasledujúci kód:

  val message: String = "{"elements":[{"id":"2","attributes":[{"name":"value","type":"float","value":"46"}]}],"updateAction":"UPDATE"}"
val url: String = "http://[domain]/update"

val pipeline: HttpRequest => Future[HttpResponse] = sendReceive
val response: Future[HttpResponse] = pipeline(
Post(url, message)
~> addHeaders(List(
RawHeader("Content-Type", "application/json")
))
)

response onComplete { completedResponse =>
println("Response: "+completedResponse.get.message.entity.asString)
}

Keď však kontrolujem protokoly, môžem vidieť, že Content-Type skutočne dostane sady text/plain; charset=utf-8, k tomu dochádza z dôvodu, že klient IO Spray skutočne určuje samotný Content-Type.

Takže moja otázka je tu; ako môžem dostať Spray IO naozaj rozpoznať moje posolstvo ako Content-Type:application/json..

Nejaké nápady? Veľmi by sme ocenili :)

odpovede:

2 pre odpoveď č. 1

Mali by ste vytvoriť HttpEntity s správnym typom ContentType:

Post(url, HttpEntity(ContentTypes.`application/json`, message))

Táto vec vysvetlila v dokumente http://spray.io/documentation/1.2.3/spray-http/#content-type-header


2 pre odpoveď č. 2

Mali by ste vytvoriť HttpEntity s správnym typom ContentType:

Post(url, HttpEntity(ContentTypes.`application/json`, message))

Táto vec vysvetlila v dokumente http://spray.io/documentation/1.2.3/spray-http/#content-type-header