HttpClient 4.3与4.3版本以下版本比较

编程技术  /  houtizong 发布于 2年前   361

网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。

httpclient又可分为

  • httpclient3.x
  • httpclient4.x到httpclient4.3以下
  • httpclient4.3以上

不同httpclient版本其请求发送的方式也不一样,下面来做个归纳

 

httpclient3.x

HttpClient client = new HttpClient();// 设置代理服务器地址和端口// client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);// 使用 GET 方法 ,如果服务器需要通过 HTTPS 连接,那只需要将下面 URL 中的 http 换成 httpsHttpMethodmethod = new GetMethod("http://java.sun.com");// 使用POST方法// HttpMethod method = new PostMethod("http://java.sun.com");client.executeMethod(method);// 打印服务器返回的状态System.out.println(method.getStatusLine());// 打印返回的信息System.out.println(method.getResponseBodyAsString());// 释放连接method.releaseConnection();

 

 

httpclient4.x到httpclient4.3以下

 

public void getUrl(String url, String encoding) throws ClientProtocolException, IOException {HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(url);HttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();if (entity != null) {InputStream instream = entity.getContent();try {BufferedReader reader = new BufferedReader(new InputStreamReader(instream, encoding));System.out.println(reader.readLine());} catch (Exception e) {e.printStackTrace();} finally {instream.close();}}// 关闭连接.client.getConnectionManager().shutdown();}

 

 

 

httpclient4.3以上

 

import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public static String getResult(String urlStr) {CloseableHttpClient httpClient = HttpClients.createDefault();// HTTP Get请求HttpGet httpGet = new HttpGet(urlStr);// 设置请求和传输超时时间// RequestConfig requestConfig =// RequestConfig.custom().setSocketTimeout(TIME_OUT).setConnectTimeout(TIME_OUT).build();// httpGet.setConfig(requestConfig);String res = "";try {// 执行请求HttpResponse getAddrResp = httpClient.execute(httpGet);HttpEntity entity = getAddrResp.getEntity();if (entity != null) {res = EntityUtils.toString(entity);}log.info("响应" + getAddrResp.getStatusLine());} catch (Exception e) {log.error(e.getMessage(), e);return res;} finally {try {httpClient.close();} catch (IOException e) {log.error(e.getMessage(), e);return res;}}return res;}

 

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客