/ / Wysyłanie żądania JSON za pomocą klienta Spray IO - json, scala, io, spray

Wysyłanie żądania JSON za pomocą klienta Spray IO - json, scala, io, spray

W tej chwili buduję małe API w Scali, które używa Spray.IO Framework do obsługi żądań i odpowiedzi.

Kiedy mój / update URL jest wywoływany chcę wywołać inny interfejs API, aby przetworzyć aktualną aktualizację, wraz z tym żądaniem chcę dodać trochę danych JSON.

Do tego używam następującego kodu:

  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)
}

Ale kiedy sprawdzam logi, widzę, że Content-Type faktycznie otrzymuje zestawy text/plain; charset=utf-8, dzieje się tak z powodu Spray IO Client faktycznie określa samego Content-Type.

Moje pytanie tutaj brzmi; jak mogę uzyskać Spray IO, aby rozpoznać moją wiadomość jako Content-Type:application/json..

jakieś pomysły? Byłbym bardzo wdzięczny :)

Odpowiedzi:

2 dla odpowiedzi № 1

Powinieneś utworzyć HttpEntity z właściwym ContentType:

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

To wyjaśniono w dokumentach http://spray.io/documentation/1.2.3/spray-http/#content-type-header


2 dla odpowiedzi nr 2

Powinieneś utworzyć HttpEntity z właściwym ContentType:

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

To wyjaśniono w dokumentach http://spray.io/documentation/1.2.3/spray-http/#content-type-header