HttClientツール

1、輸入に依存

        <! - HTTPClientの- > 
        < 依存> 
            < groupIdを> org.apache.httpcomponents </ groupIdを> 
            < たartifactId > HTTPClientの</ たartifactId > 
            < バージョン> 4.5.3 </ バージョン> 
        </ 依存関係> 
        < 依存> 
            < groupIdを> org.apache.httpcomponents </ groupIdを> 
            < たartifactId > httpmime </ たartifactId > 
            <バージョン> 4.5.3 </ バージョン> 
        </ 依存関係> 

        < 依存> 
            < groupIdを>コモンズ・コーデック</ groupIdを> 
            < たartifactId >コモンズ・コーデック</ たartifactId > 
        </ 依存関係> 

        < 依存> 
            < groupIdを>コモンズ、ログ< / のgroupId > 
            < たartifactId >コモンズ・ログ</ たartifactId > 
            <バージョン> 1.1.1 </ バージョン> 
        </ 依存関係> 
        < 依存> 
            < groupIdを> org.apache.httpcomponents </ groupIdを> 
            < たartifactId > httpcore </ たartifactId > 
        </ 依存関係> 

        <! - gson工具、封装HTTP用- - > 
        < 依存> 
            < groupIdを> com.google.code.gson </ groupIdを> 
            < たartifactId > gson </ たartifactId >
            < バージョン> 2.8.0 </ バージョン> 
        </ 依存関係>
コードの表示

2、パッケージGETとPOST

JSONへのGsonマップを使用して、メソッドが返すJSON形式の文字列を取得

パッケージnet.xdclass.xdvidio.utils。

輸入com.google.gson.Gson; 
輸入org.apache.http.HttpEntity。
輸入org.apache.http.HttpResponse。
輸入org.apache.http.client.config.RequestConfig; 
輸入org.apache.http.client.methods.CloseableHttpResponse。
輸入org.apache.http.client.methods.HttpGet; 
輸入org.apache.http.client.methods.HttpPost; 
輸入org.apache.http.entity.StringEntity。
輸入org.apache.http.impl.client.CloseableHttpClient; 
輸入org.apache.http.impl.client.HttpClients。
輸入org.apache.http.util.EntityUtils。
輸入sun.net.www.http.HttpClient; 

輸入java.util.HashMapを; 
輸入java.util.Map; 

/ ** 
 * @Authorパンダ
 * @Date 2020年4月9日夜10時41分
 * @Version 1.0 
 * @description封装HTTP GET、POST 
 * / 
publicクラスのHttpUtils { 
    静的な地図< 文字列、オブジェクト>マップ=新しいHashMapの<> (); 
    プライベート静的最終Gson gson =新しいGson(); 
    / ** 
     *取得する
     * @param URL 
     * @return 
     * / 
    パブリック静的地図< 文字列、オブジェクト> doGetメソッド(文字列のURL){ 
        CloseableHttpClientのHttpClient = HttpClients.createDefault();  
                .setSocketTimeout(5000)

        RequestConfig requestConfig = RequestConfig.custom()。setConnectTimeout(5000)//连接超时
                .setConnectionRequestTimeout(5000)//请求超时
                .setRedirectsEnabled(真)//允许自动重定向
                .build(); 

        HTTPGET HTTPGET =新しいHTTPGET(URL); 
        httpGet.setConfig(requestConfig)。
        試す{ 
           のHttpResponseをhttpResponse = httpClient.execute(HTTPGET)。
           IF(httpResponse.getStatusLine()getStatusCode()== 200){ 
               文字列化するJsonResult = EntityUtils.toString(httpResponse.getEntity())。
               地図= gson.fromJson(化するJsonResult、map.getClass())。
           } 
        }キャッチ(例外e){ 
            e.printStackTrace(); 
        }最後に{ 
            {みてください 
                httpClient.close()。
            }キャッチ(例外e){e.printStackTrace();} 
        }
        マップを返します。
    } 

    / ** 
     *封装ポスト
     * @return 
     * / 
    パブリック静的な文字列のdoPost(文字列のURL、文字列データ、整数タイムアウト){ 
        CloseableHttpClientのHttpClient = HttpClients.createDefault()。

        HttpPost httpPost =新しいHttpPost(URL); 
        httpPost.addHeader( "Content-Typeの"、 "text / htmlの; chartset = UTF-8"); 

        //设置超时时间
        。RequestConfig requestConfig = RequestConfig.custom()setConnectTimeout(タイムアウト)//连接超时
                .setConnectionRequestTimeout(タイムアウト)//请求超时
                .setSocketTimeout(タイムアウト) 
                //自動リダイレクトを許可する(trueに).setRedirectsEnabled
                .build(); 
        httpPost.setConfig(requestConfig)。

        (データ!= nullの場合&・データ列のinstanceof){ 
            //使用字符串传参
            StringEntity stringEntry =新しいStringEntity(データ、 "UTF-8"); 
            httpPost.setEntity(stringEntry)。
        } 
        {試みる
            CloseableHttpResponseをhttpResponse = httpClient.execute(httpPost)。
            HttpEntity httpEntity = httpResponse.getEntity()。
            (httpResponse.getStatusLine()getStatusCode()== 200){もし
                文字列結果= EntityUtils.toString(httpEntity)。
                結果を返します。
            } 

        }キャッチ(例外e){e.printStackTrace();} 
        最後に{ 
            試み{ 
                httpClient.close()。
            }キャッチ(例外e){e.printStackTrace();} 

        } 

        戻りヌル。
    } 
}

3、ルーチンの要約

1、のHTTPClientの例

HTTPリクエストの2例(HTTPGET / httpPost / ETA)

3、要求に情報を追加します

  POSTリクエストのヘッダ要求(のaddHeader)、リクエストボディ(setEntity)

  要求の構成requestConfigの例として、要求にロードされ、ETA

4、HTTPClientのサーバを行うHTTPリクエストとリターンをhttpResponse

  httpResponseから必要な情報を取得します

5、近くのHttpClient。

 

おすすめ

転載: www.cnblogs.com/jwmdlm/p/12670577.html
おすすめ