【问题标题】:how to send multipart form data from jsp to web service?如何将多部分表单数据从 jsp 发送到 Web 服务?
【发布时间】:2017-09-06 06:16:24
【问题描述】:

我正在尝试为我的网站创建一个注册页面。 当用户向 signup.jsp 提交数据时,我想使用“application/x-www-form-urlencoded”将此数据发送到我的 Web 服务。我怎样才能在 JSP 中做到这一点。尝试了以下代码,但这会以原始数据的形式发送数据。

<%    URL url = new URL("http://www.externalsite.com/sample.html");
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);

    String postParams = "foo="+req.getParameter("foo");

    DataOutputStream paramsWriter = new DataOutputStream(con.getOutputStream());
    paramsWriter.writeBytes(postParams);
    paramsWriter.flush();
    paramsWriter.close();

    InputStream remoteResponse = conn.getInputStream();
    OutputStream localResponder = resp.getOutputStream();
    int c;
    while((c = remoteResponse.read()) != -1)
        localResponder.write(c);
    remoteResponse.close();
    localResponder.close();

    conn.disconnect(); %>

【问题讨论】:

  • "application/x-www-form-urlencoded" != multipart.除此之外,您还尝试过什么?
  • 只需使用众多更高级别的 http 客户端库之一。
  • 请举个例子。
  • 很抱歉,您根本不清楚您想要什么。你的标题说多部分。您的帖子说 application/x-www-form-urlencoded (与 mulitpart 不同)。您的代码显示您正在尝试使用 Java 客户端。您正在询问 JSP 到服务器。这一切对我来说都是无稽之谈。
  • 原始数据是什么意思?用户输入由文件/通用字段组成?

标签: java rest jsp servlets jax-rs


【解决方案1】:

在表单的action标签中只给出web服务的url。内容类型由表单上的enctype 属性确定

如果您的表单包含文件输入元素,那么表单打开标签应该是这样的

<form method="POST" action="<your web service address>" enctype="multipart/form-data" >

如果它只包含文本和除文件以外的其他输入,enctype 将是

application/x-www-form-urlencoded

形成更多信息参考

java ee file upload example

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多