【问题标题】:How to get parameter on server from POST Url如何从 POST Url 获取服务器上的参数
【发布时间】:2013-12-11 00:03:21
【问题描述】:

我正在尝试从客户端使用 Post 方法访问一些 URL,其中包含一些“NameValuePair”格式的数据,并从 servlet(服务器端)中的 URL 接收该数据以执行一些计算并将响应发送回客户端在 JSON fromat 中。

但我能够在 Servlet(服务器)上找到正确的数据

从客户端点击 URL

private void sendHTTPSPost() throws Exception {

    String url = "http://localhost:8080/test/Registration";
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);

    // add header
    post.setHeader("User-Agent", USER_AGENT);

    List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
    urlParameters.add(new BasicNameValuePair("name", "A"));
    urlParameters.add(new BasicNameValuePair("age", "12"));
    urlParameters.add(new BasicNameValuePair("sex", "M"));

    post.setEntity(new UrlEncodedFormEntity(urlParameters));

    HttpResponse response = client.execute(post);
    System.out.println("Response Code : " + 
                                response.getStatusLine().getStatusCode());
    BufferedReader rd = new BufferedReader(
                    new InputStreamReader(response.getEntity().getContent()));

    StringBuilder result = new StringBuilder();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }

    System.out.println(result.toString());

}

在 Servlet 上

 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);   
    Enumeration headerNames = request.getHeaderNames();

    while(headerNames.hasMoreElements()) {
       String paramName = (String)headerNames.nextElement();
       System.out.println("Value of param  is ------------------"+paramName);
       String paramValue = request.getHeader(paramName);
       System.out.println("Value of key is ------------------"+paramValue);
  }

}

我尝试了很多但没有得到正确的结果。

【问题讨论】:

  • 您是在获取标头还是请求参数?
  • 我正在尝试获取我通过 url 发送的列表值

标签: java jsp jakarta-ee servlets


【解决方案1】:

你不见了

post.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");

【讨论】:

    【解决方案2】:

    您正在从请求中获取标头,您必须使用 request.getParameterNames() 来获取参数。

    【讨论】:

      【解决方案3】:

      你可以使用 -

      requests.getParameter("name"); //返回一个

      requests.getParameter("age"); //返回 12

      requests.getParameter("sex"); //返回M

      【讨论】:

        猜你喜欢
        • 2016-06-05
        • 2017-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 2018-08-23
        相关资源
        最近更新 更多