我正在尝试使用play框架来实现一个Web应用程序,作为旧的http服务器实现的替代,该实现正在连接旧的非浏览器旧版http客户端。
该客户端是用Delphi编写的,它直接在请求正文中发布数据,并附带一些标题信息。
我以为我会得到一些东西
request.body /* In the play controller */
但没有任何东西。
请参阅以下代码:
public static void uploadPicture() {
InputStream data = request.body;
String fx = Play.getFile("").getAbsolutePath()+File.separator+"uploads"+File.separator+"test.jpg";
File f = new File(fx);
FileOutputStream moveTo = new FileOutputStream(fx);
try {
byte[] b = new byte[4096];
for (int x = 0; (data.read(b)) != -1;){
moveTo.write(b, 0, x);
}
} finally{
moveTo.close();
}
}
修改:
为了澄清我的观点:我去了,我在eclipse HttpServlet
和doPost()
方法中创建了一个简单的动态Web项目,当我得到request.getInputStream()
它包含从旧客户端发送的文件时。
游戏正在对请求的主体做些什么!?
我有什么选择?
感谢。
伊尔凡
答案 0 :(得分:1)
好的,这是Play 1.2.4中的一个错误。我安装了最新的1.2.5版本,一切都开箱即用。
您可以在控制器的request.body
中访问请求的原始正文。