【发布时间】:2013-02-21 13:31:12
【问题描述】:
我需要向 URL 发送 POST 请求并发送一些请求参数。我为此使用 HttpURLConnectionAPI。但我的问题是我在 servlet 中没有得到任何请求参数。虽然我看到请求正文中存在参数,但当我使用 request.getReader 打印请求正文时。以下是客户端代码。任何机构都可以指定这是否是在 POST 请求中发送请求参数的正确方法吗?
String urlstr = "http://serverAddress/webappname/TestServlet";
String params = "¶mname=paramvalue";
URL url = new URL(urlstr);
HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
urlconn.setDoInput(true);
urlconn.setDoOutput(true);
urlconn.setRequestMethod("POST");
urlconn.setRequestProperty("Content-Type", "text/xml");
urlconn.setRequestProperty("Content-Length", String.valueOf(params.getBytes().length));
urlconn.setRequestProperty("Content-Language", "en-US");
OutputStream os = urlconn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(params);
writer.close();
os.close();
【问题讨论】:
-
不确定是否需要在参数字符串中使用前导 &。另外,你应该 writer.write(params.getBytes())