1. 程式人生 > >使用Java編寫一個http請求,要求使用HttpClient

使用Java編寫一個http請求,要求使用HttpClient

HttpClient介紹:

HttpClient是Apache提供的一個用於在Java中處理HTTP請求、響應操作的工具,它比JDK中自帶的URLConnection更加靈活好用,因此越來越多的人開始使用它來實行對HTTP的請求操作。HttpClient的初級使用我是在IDEA的編譯工具上來實現基於HttpClient的HTTP請求實現。首先需要先建立一個Maven專案,並且新增相關的HttpClient依賴,在百度上使用HttpClient pom 查詢官網上的HttpClient依賴,如圖1.1,然後選擇自己需要的版本,點選獲取該依賴,如圖1.2。將該語句新增至專案的pom.xml檔案中。至此,HttpClient的jar包新增完成,可以開始專案的編寫。          

                                                            圖1.1 依賴版本選擇圖1.2 相關依賴語句                

                                                 

                                               圖1.2 相關依賴語句    

HttpClient的使用方法:

  1. 使用CloseableHttpClient來建立一個httpClient物件
  2. 宣告請求型別,並傳入相應的URL
  3. 使用httpClient的excute()方法來傳遞請求物件,並獲取響應物件
  4. 獲取伺服器的狀態碼,並判斷該狀態碼是否正常
  5. 正常的話則將伺服器傳送的資料封裝成HttpEntity物件
  6. 將所得物件轉化成字串
  7. 關閉連線

get請求:

public class HttpClient {
    public static void main(String[] args) {
        //建立一個httpClient例項
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //建立一個get方法,並指定url
        HttpGet get = new HttpGet("http://www.baidu.com");

        {
            try {
                //呼叫httpClient的excute方法,傳遞請求物件並且獲取到響應物件
                HttpResponse  response = httpClient.execute(get);
                //得到伺服器的狀態碼
                ; int httpCode = response.getStatusLine().getStatusCode();
                System.out.println("httpCode:"+ httpCode);
                //判斷該狀態碼是否正常
                if(httpCode >= 200 && httpCode < 400){
                    //得到伺服器端傳送過來的資料並封裝成HttpEntity
                    HttpEntity httpEntity = response.getEntity();
                    //將得到的物件轉化成字串
                    System.out.println("httpEntity:"+ httpEntity);
                    String result = EntityUtils.toString(httpEntity);
                    System.out.println("*********************");
                    System.out.println("result:"+ result);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        response.close();
        httpClient.close();
    }

}

 輸出結果