需要使用 post 请求提交参数或者数据的的时候,很多人新手都不知道如何去实现,可能知用 HttpURLConnection 去实现,但不知道改如何去写,我花了一些时间去整理了一下,其实还是很简单,若有不明白的童鞋可以参考一下以下本人的实现方法。
public static String doRequest(String urlPath, Map<String, String> param) throws IOException {
URL url = null;
HttpURLConnection conn = null;
BufferedReader in = null;
String responseData = "";
PrintWriter printWriter = null;
try {
url = new URL(urlPath);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setDoOutput(true);// Set enable output
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Charset", "utf-8");
OutputStream os = conn.getOutputStream();
printWriter = new PrintWriter(os);
// traversing map(param) stitching parameters
String content = "";
for (String key : param.keySet()) {
content += "&";
content += key;
content += "=";
content += param.get(key);
}
System.out.println("the param ergodic result content:" + content);
printWriter.write(content);
printWriter.flush();
int code = conn.getResponseCode();
if (code == 200) {
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String retData = null;
while ((retData = in.readLine()) != null) {
responseData += retData;
}
} else {
responseData = code + "";
}
return responseData;
} finally {
if (printWriter != null) {
printWriter.close();
}
if (in != null) {
in.close();
}
if (conn != null) {
conn.disconnect();
}
}
}