HttpClient實現遠程調用

       在項目中,咱們經常遇到遠程調用的問題,一個模塊老是沒法單獨存在,總須要調用第三方或者其餘模塊的接口。這裏咱們就涉及到了遠程調用。 原來在 ITOO中,咱們是經過使用EJB來實現遠程調用的,改版以後,咱們用Dubbo+zk來實現。下面介紹一下HttpClient的實現方法。html

(一)簡介java

       HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,而且它支持 HTTP 協議最新的版本和建議。能夠說是如今Internet上面最重要,使用最多的協議之一了,愈來愈多的java應用須要使用http協議來訪問網絡資源,特別是如今rest api的流行。apache

(二)使用編程

<dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient-cache</artifactId>
      <version>4.5</version>
    </dependency>
    <dependency>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpmime</artifactId>
     <version>4.3.2</version>
    </dependency>

 

(三)POST請求api

實現步驟:
第一步:建立一個httpClient對象
第二步:建立一個HttpPost對象。須要指定一個url
第三步:建立一個list模擬表單,list中每一個元素是一個NameValuePair對象
第四步:須要把表單包裝到Entity對象中。StringEntity
第五步:執行請求。
第六步:接收返回結果
第七步:關閉流網絡

 @Test public void testHttpPost() throws Exception { // 第一步:建立一個httpClient對象
        CloseableHttpClient httpClient = HttpClients.createDefault(); // 第二步:建立一個HttpPost對象。須要指定一個url
        HttpPost post = new HttpPost("http://localhost:8082/posttest.html"); // 第三步:建立一個list模擬表單,list中每一個元素是一個NameValuePair對象
        List<NameValuePair> formList = new ArrayList<>(); formList.add(new BasicNameValuePair("name", "張三")); formList.add(new BasicNameValuePair("pass", "1243")); // 第四步:須要把表單包裝到Entity對象中。StringEntity
        StringEntity entity = new UrlEncodedFormEntity(formList, "utf-8"); post.setEntity(entity); // 第五步:執行請求。
        CloseableHttpResponse response = httpClient.execute(post); // 第六步:接收返回結果
        HttpEntity httpEntity = response.getEntity(); String result = EntityUtils.toString(httpEntity); System.out.println(result); // 第七步:關閉流。
 response.close(); httpClient.close(); } 

 

(四)Get請求工具

實現步驟:
第一步:建立一個httpClient對象
第二步:建立一個HttpPost對象。須要指定一個url
第三步:建立一個list模擬表單,list中每一個元素是一個NameValuePair對象
第四步:須要把表單包裝到Entity對象中。StringEntity
第五步:執行請求。
第六步:接收返回結果
第七步:關閉流。post

 @Test public void testHttpGet() throws Exception { // 第一步:把HttpClient使用的jar包添加到工程中。 // 第二步:建立一個HttpClient的測試類 // 第三步:建立測試方法。 // 第四步:建立一個HttpClient對象
        CloseableHttpClient httpClient = HttpClients.createDefault(); // 第五步:建立一個HttpGet對象,須要制定一個請求的url
        HttpGet get = new HttpGet("http://www.itheima.com"); // 第六步:執行請求。
        CloseableHttpResponse response = httpClient.execute(get); // 第七步:接收返回結果。HttpEntity對象。
        HttpEntity entity = response.getEntity(); // 第八步:取響應的內容。
        String html = EntityUtils.toString(entity); System.out.println(html); // 第九步:關閉response、HttpClient。
 response.close(); httpClient.close(); }

 

轉載至:https://blog.csdn.net/mengmei16/article/details/72190363?foxhandler=RssReadRenderProcessHandler測試

相關文章
相關標籤/搜索