apache http調用設置超時時間


 

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

        CloseableHttpClient client = null;
            HttpRequestBase signedRequest = Client.sign(request);
            client = HttpClients.custom().build();


            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000)
                    .setConnectionRequestTimeout(1000).setSocketTimeout(5000).build();
            signedRequest.setConfig(requestConfig);


            HttpResponse response = client.execute(signedRequest);
            int statusCode = response.getStatusLine().getStatusCode();
            HttpEntity resEntity = response.getEntity();
            String result = EntityUtils.toString(resEntity, "UTF-8");
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://www.baidu.com");
RequestConfig requestConfig = RequestConfig.custom()
        .setConnectTimeout(5000).setConnectionRequestTimeout(1000)
        .setSocketTimeout(5000).build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = null;
try {
    response = httpclient.execute(httpGet);
} catch (IOException e) {
    e.printStackTrace();
}
System.out.println("得到的結果:" + response.getStatusLine());//得到請求結果
HttpEntity entity = response.getEntity();//得到請求回來的數據
String s = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(s);

  

 

//設置請求超時時間
        RequestConfig requestConfig = RequestConfig.custom()
               .setConnectTimeout(2000)
               .setConnectionRequestTimeout(2000)
               .setSocketTimeout(2000)
               .build();

說明

ConnectionRequestTimeout

httpclient使用連接池來管理連接,這個時間就是從連接池獲取連接的超時時間,可以想象下數據庫連接池

ConnectTimeout

連接建立時間,三次握手完成時間

SocketTimeout

數據傳輸過程中數據包之間間隔的最大時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM