2017-01-26 10 views
1

私は小さなhttp4sクライアントにHTTP4Sクライアント。正確なリクエストとレスポンスボディを取得する方法

val client = SimpleHttp1Client() 
val uri = Uri.fromString(requestUrl).valueOr(throw _) 
val task = POST(uri, UrlForm("username" -> userName, "password" -> password)).map{request => println("request: " + request.body)} 

try { 
    val response = client.expect[String](task).unsafePerformSync 
    println("token: " + response) 
    response 
} catch { 
    case e: Exception => println(e.getMessage);"BadToken" 
} 

を書いています出力はStringにバイナリリクエストボディを変換する方法

[info] Running com.researchnow.nova.shield.NovaShieldSetup 
[info] Emit(Vector(ByteVector(44 bytes, 0x757365726e616d653d616268737269766173746176612670617373776f72643d41726))) 
[info] Failed: unexpected HTTP status: 400 Bad Request 
[info] token: BadToken 

のようなものですか?私は本文とヘッダーをクリアテキストで見たいと思います。

答えて

1

私はhttp4sチームと会話していましたが、その回答が見つかりました。 gitterの話がGoogleによって返されないので私はここに答えを入れている

val loggedReq = req.copy(body = request.body.observe(scalaz.stream.io.stdOutBytes)) 
println(loggedReq) 

これはすべてのヘッダーを印刷します。 loggedReqで何かすると、本文全体が表示されます。

loggedReq.as[String].run 
関連する問題