/ / JSONリクエストをSpray IO Clientで送信する - json、scala、io、spray

Spray IO ClientでJSONリクエストを送信する - json、scala、io、spray

今私はSpray.IOフレームワークを使って要求と応答を処理するScalaの小さなAPIを構築しています。

私の/更新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これは、スプレーIOクライアントがContent-Type自体を実際に決定するために発生します。

だからここで私の質問です。どのようにスプレーIOを実際に自分のメッセージを認識するようにすることができますか? Content-Type:application/json..

何かご意見は?非常に感謝される:)

回答:

回答№1は2

適切なContentTypeを使用してHttpEntityを作成する必要があります。

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

このことはドキュメントで説明されています http://spray.io/documentation/1.2.3/spray-http/#content-type-header


回答№2については2

適切なContentTypeを使用してHttpEntityを作成する必要があります。

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

このことはドキュメントで説明されています http://spray.io/documentation/1.2.3/spray-http/#content-type-header