2017-01-05 23 views
1

エンドポイントからレスポンスボディを取得する方法は?私はEndpointへのリクエストを送信しています、私は知りたい、レスポンス文字列を取得する方法。Scala Play Framework

val complexRequest = ws.url(serviceEndpoint).withHeaders("Content-Type" -> "application/xml") 
    val result = complexRequest.post(leadXml).map { response => 
     logger.info(s"response $response") 
     if (response.status == 200) { 
     val res = response 
     logger.info(s"status passed.. $res") 
     } 
     else { 
     val res = response 
     logger.info(s"status failed.. $res") 

     } 
    } 
+0

このテストコードは、コントローラ内にありますか? – marcospereira

+0

それはサービスの中にあり、今私は応答を得ました。そして私は約束を介してコントローラに返答しました。 – user3278612

答えて

0

あなたはヘルパークラスを使用することができます

import play.api.test.Helpers._ 
val result: Future[SimpleResult] = … 
val bodyAsBytes: Array[Byte] = contentAsBytes(result) 

それともJavaResultExtractor

akka.util.ByteString body = play.core.j.JavaResultExtractor.getBody(result, 10000l, mat); 

それともJavaBodyPartser

https://www.playframework.com/documentation/2.5.x/JavaBodyParsers

1

response.bodyまた、PlayJsonを使用して検証し、実行可能なオブジェクトに変更することもできます。

関連する問題