HttpClient与HttpURLConnection的请求方式
程序员文章站
2022-03-03 09:39:11
...
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 {
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();
}
上一篇: 如何从官网下载JDK版本
下一篇: 如何从官网下载JDK版本