Servlet getParameter()为form-data返回null

时间:2017-08-29 19:30:18

标签: java servlets http-post tomcat8 getparameter

我向POST Tomcat 8.0 Servlet 3.1 Web应用程序发送localhost请求,但request.getParameter("")返回null

这就是我提出请求的方式。 Using PostMan

我正在使用PostMan执行我的POST请求。在java方面,我打电话给request.getParameter("code"),这给了我nullqwe字段也是如此。我没有使用任何框架。这是原始的servlet。这只是一个后端,所以关于处理数据和响应客户端。

如果我使用"x-www-form-urlencoded",我可以通过getParameter()电话检索参数,但我仍然想知道为什么我无法获得form-data

感谢。

1 个答案:

答案 0 :(得分:0)

感谢 @cjstehno

当他说"form-data"实际上是一个多部分数据时,我试图将其作为多部分数据读取,但考虑isFormField()方法来区分文件和参数。因此,从原始servlet,可以通过下面的代码阅读form-data。从性能视图来看,我很确定这可能会有所改进。

try {
     ServletFileUpload upload = new ServletFileUpload();
     FileItemIterator iter = upload.getItemIterator(request);

     while (iter.hasNext()) {
          FileItemStream item = iter.next();
          String name = item.getFieldName();

          if (item.isFormField()) {
               String value = Streams.asString(item.openStream());
          }
     }          
 } catch (Exception ex) {}