【发布时间】:2011-10-18 20:02:33
【问题描述】:
我正在尝试使用 java 发送 POST 数据。这是我尝试使用的方法:
public void doSubmit(String url, HashMap<String, String> data) throws Exception {
URL siteUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
Set keys = data.keySet();
Iterator keyIter = keys.iterator();
String content = "";
for(int i=0; keyIter.hasNext(); i++) {
Object key = keyIter.next();
if(i!=0) {
content += "&";
}
content += key + "=" + URLEncoder.encode(data.get(key), "UTF-8");
}
System.out.println(content);
out.writeBytes(content);
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
while((line=in.readLine())!=null) {
System.out.println(line);
}
in.close();
}
这是我测试它的方式:
HashMap<String, String> data = new HashMap<String, String>();
data.put("img", "someuser");
doSubmit("http://www.blah.com/b.php", data);
在 .php 中进行一些回显测试后,设置了 POST 数据,但 POST 数组为空。为什么?
【问题讨论】:
标签: java php http-post httpurlconnection