2014-06-24 4 views
0

재생 프레임 워크의 게시물에서 결과를 처리하는 방법에 대한 손실이 있습니다. 난 그냥 post(myvalue).get()을 대체 할 수있을 거라고 생각Play Post Framework의 프로세스 게시 응답

WSRequestHolder request = WS.url(myURL); 

return async(
    request.get().map(
     new Function<WS.Response, Result>() { 
      public Result apply(WS.Response response) { 
       String json = response.getBody(); 
       System.out.println("Json response: " + json); 

       //Do stuff       

       return ok(json);    
      } 
     } 
    ) 
); 

: 다음 코드는 GET 응답을 처리하기 위해 노력하고 있습니다. 그러나 이것은 작동하지 않습니다. Play Framework에서 POST 응답을 처리하는 적절한 방법은 무엇입니까? java.io.File, java.io.InputStream, JsonNodeString :

+0

"이 기능이 작동하지 않음"이란 무엇을 의미합니까? –

답변

0

WSRequestHolder.post(...) 매개 변수로 4 개 가지 유형을 수용한다. myvalue 무엇이고 Content-TypemyURL이 무엇을 기대하는 지에 따라 .get().post(myvalue)으로 바꿉니다.

POST 이러한 유형의 경우 Content-Type 헤더가 해당 유형으로 설정됩니다. JsonNode을 전달하면 자동으로 Content-Typeapplication/json으로 설정됩니다. 그러나 String을 전달할 경우 String이 JSON 또는 양식으로되어 있는지 여부를 Play에서 알 수 없으므로 Content-Type을 직접 설정해야합니다. Play Documentation에서

:

폼 보내는 경우 :

request.setContentType("application/x-www-form-urlencoded").post("key1=value1&key2=value2") ... 

을 아니면 String으로 JSON을 게시 : 당신이 다른 컴파일 오류가 발생하는 경우

request.setContentType("application/json").post(jsonString) ... 

, 그들을 게시하십시오.