【问题标题】:Get parameters of the POST request with ZK Framework使用 ZK 框架获取 POST 请求的参数
【发布时间】:2014-10-28 10:29:25
【问题描述】:

我想使用 POST 请求将数据从一个应用程序(Spring MVC)传递到另一个使用 ZK 框架编写的应用程序。 post 方法的参数之一将是一个文件。我们就叫它id吧。

所以,我现在拥有的是 Composer,代码如下:

public class PictureComposer extends SelectorComposer<Component> {

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
        Execution e = Executions.getCurrent();

        System.out.println("post param: " + Executions.getCurrent().getParameterMap().get("id"));

        HttpServletRequest request = (HttpServletRequest) e.getNativeRequest();
        String idd = request.getParameter("id");
        System.out.println("id: " + idd);
    }
}

而且,当我尝试向该作曲家发出 POST 请求时,Executions.getCurrent().getParameterMap().get("id") 似乎返回了null

与第二种方法相同(使用HttpServletRequest)。

另一方面,当我使用 GET 请求并将此值作为 URL 中的参数传递时,我得到了 id 的一些值。但是,很遗憾,我无法在 URL 中传递我的文件。

那么,主要问题是如何从 POST 请求中检索变量?

UPD:(现在我尝试检索纯字符串参数,就像简化示例一样)我的 POST 请求如下所示:

POST /zssessentials/picture.zul HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="id"

wooooow
----WebKitFormBoundaryE19zNvXGzXaLvS5C

【问题讨论】:

  • 如何将文件发送到此 URL?您在尝试使用多部分 mime 类型吗?
  • @zaerymoghaddam 感谢您的关注! :)
  • @zaerymoghaddam 我已经更新了问题并添加了 POST 请求的内容。请看一下。
  • 有一个 similar question 在执行和 POST 方面遇到问题。

标签: java post zk


【解决方案1】:

为了检索上传的文件,您应该将&lt;form&gt; 元素的enctype 属性设置为multipart/form-data,如下所示:

<form method="POST" action="your/zk/address" enctype="multipart/form-data" >
    ...
</form>

然后就可以使用HttpServletRequest类的getPart方法来访问上传的文件了。所以你的代码应该改成这样:

Part filePart = request.getPart("id");
InputStream filecontent = filePart.getInputStream();

【讨论】:

  • 不幸的是,filePart 在这里变成了null
【解决方案2】:

我想通了。

原因是 servlet 没有自己解析多部分请求。 我一直在标题中使用这一行发送请求(即使它是纯字符串或整数值):

Content-type: multipart/form-data

这就是原因。

所以,我应该在PictureComposer 类中使用第三方库。

就我而言,Streaming API from Apache 派上了用场。

另外,this StackOverflow answer 帮助我解决了我的问题。

【讨论】:

    猜你喜欢
    • 2014-12-08
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2018-12-20
    • 2018-07-25
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多