때 그때 내가 그러나사용자 정의 개체를 사용하는 대신 HttpResponse에
val futureResponse = pipeline(Post(url, body)) futureResponse.map(_.status)
를 사용하여 같은 HttpResponse에의 객체를 상태 코드를 얻을 수
val pipeline: HttpRequest => Future[HttpResponse] = addHeader(.......) ~> sendReceive ~> unmarshal[HttpResponse]
를 사용할 때 응답 코드를 얻는 방법, 때
val pipeline: HttpRequest => Future[MyResponse] = addHeader(.......) ~> sendReceive ~> unmarshal[MyResponse]
이
012를 사용 : 나는 사용자 정의 Unmarshaller에를 사용val myfutureResponse = pipeline(Post(url, body))
myutureResponse.map(_.status)
상태를 찾을 수 없으므로 컴파일되지 않습니다. 상태 코드는 어떻게 얻습니까? 내 json 결과를 deserialize 수 있도록 사용자 지정 unmarshaller 사용해야합니다.
좋습니다. 포인터를 가져 주셔서 감사합니다. 시체를 가져오고 코드를 얻기 위해 다른 요청을하는 것은 아닙니다. 재미있는 점은 언 마샬 러 내부의 값을 하드 코딩하고 있다는 것을 알지 못했다는 것입니다. 나는 내가 인터넷에서 발견 한 예들을 따랐다. – Sheggetin
내가 말한 것은 당신이 unmarshaller를 파이프 라인의 일부로 하드 코딩하고 있다는 것입니다. 구현 방법을 살펴보고 다른 동작을 원한다면 구현할 수 있습니다. –
아직 제안 된 솔루션에 대해 100 % 명확하지 않습니다. 불행히도 인터넷에 예제가 많이 없습니다. 내가 온라인에서 보았던 솔루션 중 하나는 httpresonse를 캡처하여 파이프 마샬링 전에 'code'def mapStatus : HttpResponse => HttpResponse = { case H @ HttpResponse (status, entity, _, _)) => r.withEntity (entity.map ((ct, buf) => ContentType.'application/json' -> buf)) case x => x} val 파이프 라인 : HttpRequest => Future [래퍼 [MyResponse] ] => sendReceive ~> mapStatus ~> myUnmarshall [MyResponse] – Sheggetin