2017-01-05 2 views
1

엔드 포인트에서 Response Body를 얻는 방법? Endpoint에 요청을 보내고 있습니다. 알고 싶습니다. 응답 문자열을 얻는 방법.스칼라 플레이 프레임 워크

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을 사용하여 유효성을 검사하고이를 실행 가능한 개체로 변경할 수 있습니다!