打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DefaultHttpClient is deprecated

http://www.yeetrack.com/?p=760


最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有被deprecated。去看了下官方文档,确实不推荐使用了,点击此处详情

  • DefaultHttpClient —> CloseableHttpClient
  • HttpResponse —> CloseableHttpResponse

官方给出了新api的样例,如下。

Get方法:

    CloseableHttpClient httpclient = HttpClients.createDefault();    HttpGet httpGet = new HttpGet("http://targethost/homepage");    CloseableHttpResponse response1 = httpclient.execute(httpGet);    // The underlying HTTP connection is still held by the response object    // to allow the response content to be streamed directly from the network socket.    // In order to ensure correct deallocation of system resources    // the user MUST either fully consume the response content  or abort request    // execution by calling CloseableHttpResponse#close().    //建立的http连接,仍旧被response1保持着,允许我们从网络socket中获取返回的数据    //为了释放资源,我们必须手动消耗掉response1或者取消连接(使用CloseableHttpResponse类的close方法)    try {        System.out.println(response1.getStatusLine());        HttpEntity entity1 = response1.getEntity();        // do something useful with the response body        // and ensure it is fully consumed        EntityUtils.consume(entity1);    } finally {        response1.close();    }

Post方法:

    HttpPost httpPost = new HttpPost("http://targethost/login");    //拼接参数    List <NameValuePair> nvps = new ArrayList <NameValuePair>();    nvps.add(new BasicNameValuePair("username", "vip"));    nvps.add(new BasicNameValuePair("password", "secret"));    httpPost.setEntity(new UrlEncodedFormEntity(nvps));    CloseableHttpResponse response2 = httpclient.execute(httpPost);    try {        System.out.println(response2.getStatusLine());        HttpEntity entity2 = response2.getEntity();        // do something useful with the response body        // and ensure it is fully consumed        //消耗掉response        EntityUtils.consume(entity2);    } finally {        response2.close();    }

再往下看HttpClients的源码,具体的实现都在HttpClientBuilderbuild方法中,有兴趣的可以去apache看源码。

    /**    * Creates {@link CloseableHttpClient} instance with default    * configuration.    */    public static CloseableHttpClient createDefault() {        return HttpClientBuilder.create().build();    }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HttpClient 4.3教程 第一章 基本概念 | 易踪网
HTTP客户端连接,选择HttpClient还是OkHttp?
httpClient基础
HttpComponents入门解析
微信支付v3——批量转账到零钱(提现)
【第三方互联】十五、百度(baidu)授权第三方登录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服