问答详情
源自:2-2 access_token的获取(上)

defaultHttpClient 过时处理

defaultHttpClient 警告过时,有什么可以替代的吗

提问者:kylinthinker 2016-06-22 09:34

个回答

  • ALemon_Y
    2018-05-18 09:58:20

    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().
    
        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();
        }


  • qq_木樨_03742982
    2016-07-31 16:16:49

    导入httpclient 4.2.5

    导入httpcore 4.2.4

    我跟你遇到过同样的问题,亲测有效

  • 慕粉3565655
    2016-07-21 21:47:32

    CloseableHttpClient httpClient = HttpClients.createDefault();