2017-03-16 10 views
3

私は検索APIを照会しており、jsonで照会パラメーターを本文としてPOST要求に追加する必要があります。akka http - 投稿リクエストにjsonデータを追加するには?

val headers: scala.collection.immutable.Seq[HttpHeader] = scala.collection.immutable.Seq(
    RawHeader("accept", "application/json"), 
    RawHeader("authorization", "xxxxxxxxxxxxxxxxxxxx"), 
    RawHeader("content-type", "application/json"), 
    RawHeader("x-customer-id", "123456789") 
) 

val formData = FormData(Map(
     "Keywords" -> "query", "Count" -> "25" 
    )) 

val request = HttpRequest(HttpMethods.POST, "https://api.xxx.com/services/xxx/v1/search?client_id=xxxxxx", headers, formData.toEntity) 

formData.toEntityを投稿の本体にjsonとして送信しますか?

+0

あなたはジャクソンやjson4sのような「マーシャラー」が必要... –

答えて

0

私は、検索クエリのためのクラスを作成し、それをシリアライズし、そのようなHttpEntityを作成しました:

case class SearchObject(keyWords: String, count: Int) 

val reqHeaders: scala.collection.immutable.Seq[HttpHeader] = scala.collection.immutable.Seq(
    RawHeader("accept", "application/json"), 
    RawHeader("authorization", "xxxxxxxxxxxxxxxxxxxx"), 
    RawHeader("content-type", "application/json"), 
    RawHeader("x-customer-id", "123456789") 
) 

val searchObject = net.liftweb.json.Serialization.write(req) //req is search object 
val searchObjectEntity = HttpEntity(ContentTypes.`application/json`, searchObject) 
val request = HttpRequest(HttpMethods.POST, "https://api.xxxxxxxx.com/services/xxxxxx/v1/search?client_id=45854689", reqHeaders, searchObjectEntity) 
関連する問題