Play框架中的Process Post响应

时间:2014-06-24 06:14:59

标签: java playframework playframework-2.0

我对如何处理帖子游戏框架中的结果感到茫然。以下代码用于处理GET响应:

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()替换post(myvalue)。但是,这不起作用。在Play Framework中处理POST响应的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

WSRequestHolder.post(...)接受4种不同类型作为参数:java.io.Filejava.io.InputStreamJsonNodeString可以.get()替换为.post(myvalue),具体取决于myvalue是什么以及Content-Type myURL期待的内容。

使用这些类型的

POST将设置适合该类型的Content-Type标头。例如,传递JsonNode会自动将Content-Type设置为application/json。但是,在传递String时,您可能需要自己设置Content-Type,因为Play不会知道String应该是JSON还是表单。

来自Play Documentation

如果您要发送表格:

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

或将JSON发布为String

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

如果您遇到其他编译错误,请发布。