访问http请求正文原始数据

时间:2012-11-01 15:23:36

标签: java http servlets stream playframework

我正在尝试使用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 HttpServletdoPost()方法中创建了一个简单的动态Web项目,当我得到request.getInputStream()它包含从旧客户端发送的文件时。

游戏正在对请求的主体做些什么!?

我有什么选择?

感谢。

伊尔凡

1 个答案:

答案 0 :(得分:1)

好的,这是Play 1.2.4中的一个错误。我安装了最新的1.2.5版本,一切都开箱即用。

您可以在控制器的request.body中访问请求的原始正文。