gpt4 book ai didi

post - Play framework 2.0 Form.bindFromRequest().get() 返回空模型

转载 作者:行者123 更新时间:2023-12-02 22:43:08 24 4
gpt4 key购买 nike

我需要从套接字通信接收相同的 POST 数据。

这是发送 POST 和接收响应的代码,看起来工作正常:

String data = "t=" + URLEncoder.encode("Title", "UTF-8") +
"&u=" + URLEncoder.encode("http://www.myurl.com", "UTF-8");

URL url = new URL("http://localhost:9000/adserver");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output = "Data received\r\n", line;
while ((line = rd.readLine()) != null) {
output += line;
}
wr.close();
rd.close();

return ok(output);

这是接收 POST 的代码:

Form<AdRequest> form = form(AdRequest.class).bindFromRequest();

if(form.hasErrors()) {
return badRequest("error");
} else {
AdRequest adr = form.get();
return ok(adr.t + " - " + adr.u);
}

AdRequest 模型是这样定义的:

public class AdRequest {
public String t;
public String u;
}

表单对象接收数据,因为我可以在调试中看到它们,但是 get() 方法返回的 adr 对象只包含空值:

adr = {
t: null,
u: null
}

相反,如果我使用此代码读取数据,它会正常工作:

Map<String, String[]> asFormUrlEncoded = request().body().asFormUrlEncoded();
return ok(asFormUrlEncoded.get("t")[0] + " - " + asFormUrlEncoded.get("u")[0]);

我做错了什么?是 Play Framework 错误吗?

谢谢。

最佳答案

对我来说,问题似乎是 Eclipse 干扰了代码生成,并且通常会弄乱生成的字节码。

在 Eclipse 中关闭“自动构建”解决了这个问题。

此链接有帮助:https://groups.google.com/forum/?fromgroups#!topic/play-framework/JYlkz_Nh31g

关于post - Play framework 2.0 Form.bindFromRequest().get() 返回空模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com