/ / Відправка запиту JSON за допомогою Spray IO Client - json, scala, io, spray

Відправка запиту JSON за допомогою Spray IO Client - json, scala, io, spray

Зараз я створюю невеликий API в Scala, який використовує Spray.IO Framework для обробки запитів і відповідей.

Коли я викликаю URL-адресу мого / оновлення, я хочу викликати інший API для обробки фактичного оновлення, разом із цим запитом я хочу додати деякі дані JSON.

Для цього я використовую наступний код:

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

Але коли я перевірю журнали, я бачу, що Content-Type насправді отримує набори text/plain; charset=utf-8, це відбувається через те, що Spray IO Client фактично визначає сам Content-Type.

Тож моє запитання тут; Як я можу отримати Spray IO, щоб фактично визнати моє повідомлення як Content-Type:application/json..

Будь-які думки? Будемо дуже вдячні :)

Відповіді:

2 для відповіді № 1

Ви повинні створити HttpEntity з належним ContentType:

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

Ця річ пояснюється в документах http://spray.io/documentation/1.2.3/spray-http/#content-type-header


2 для відповіді № 2

Ви повинні створити HttpEntity з належним ContentType:

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

Ця річ пояснюється в документах http://spray.io/documentation/1.2.3/spray-http/#content-type-header