我对如何处理帖子游戏框架中的结果感到茫然。以下代码用于处理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响应的正确方法是什么?
答案 0 :(得分:0)
WSRequestHolder.post(...)
接受4种不同类型作为参数:java.io.File
,java.io.InputStream
,JsonNode
和String
。 可以将.get()
替换为.post(myvalue)
,具体取决于myvalue
是什么以及Content-Type
myURL
期待的内容。
POST
将设置适合该类型的Content-Type
标头。例如,传递JsonNode
会自动将Content-Type
设置为application/json
。但是,在传递String
时,您可能需要自己设置Content-Type
,因为Play不会知道String
应该是JSON还是表单。
如果您要发送表格:
request.setContentType("application/x-www-form-urlencoded").post("key1=value1&key2=value2") ...
或将JSON发布为String
:
request.setContentType("application/json").post(jsonString) ...
如果您遇到其他编译错误,请发布。