HttpClient与HttpURLConnection的请求方式

HttpURLConnection是java的标准类,HttpURLConnection继承自URLConnection,可用于向指定网站发送GET请求、POST请求。

/**

* http post请求并接收返回的参数

* @param ur:请求的路径

* @param data:请求的参数

* @return

* @throws IOException

*/

public static String doPost(String url, String data) throws IOException {

[color=red]URL getUrl = new URL(url);

//创建一个链接
HttpURLConnection conn = (HttpURLConnection) getUrl.openConnection();

//post请求必须设置这两个属性
//设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;《设置请求参数》
conn.setDoOutput(true);

//设置是否从httpUrlConnection读入,默认情况下是true;《接收请求返回的数据》
conn.setDoInput(true);

//设置请求方式
conn.setRequestMethod("POST");

//设置是否使用缓存,post请求不能使用缓存
conn.setUseCaches(false);

//设置只作用于当前的实例
conn.setInstanceFollowRedirects(true);

//设置请求参数格式
conn.setRequestProperty("Content-Type", "text/xml");

//设置格式为utf-8,防止乱码
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "utf-8");

//将请求参数转换为byte字节
byte[] byteData = data.getBytes("utf-8");

//打开连接
conn.connect();

//建立一个数据输出流
DataOutputStream out = new DataOutputStream(conn.getOutputStream());

//将请求参数写入流,刷新提交关闭流
out.write(byteData);

out.flush();

out.close();

//建立一个数据读取流,读取连接返回的数据
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));

StringBuilder result = new StringBuilder();

//循环读取返回的数据
String inputLine;

while ((inputLine = bufferedReader.readLine()) != null) {

result = result.append(inputLine);

}

bufferedReader.close();

conn.disconnect();

return result.toString();[/color]
}

你可能感兴趣的:(http)