一次線上http接口調用不通相關的解決過程


2016-05-25 08:58:34

昨天線上小白系統因為調用外部http接口,超時不釋放,導致頁面反應很慢,時間一長,報502錯誤。

上網查了下,502錯誤是因為服務對於客戶的請求沒有得到及時的反應,查詢日志,發現很多調http接口異常,頁面反應也很慢。

瞬間想到縮短http客戶端調用http接口的超時時間,搜到這個博客http://blog.csdn.net/xinying0424/article/details/36006383  感謝

HttpClient 4:
連接超時:

連接超時
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);
// 或者
HttpConnectionParams.setConnectionTimeout(params,6000);
讀取超時:

httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,60000);
// 或者
HttpConnectionParams.setSoTimeout(params,60000);
HttpClient 3:
連接超時:
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60000);
讀取超時:
httpClient.getHttpConnectionManager().getParams().setSoTimeout(60000);

發現我本來代碼里就寫了這個,只是時間配置的實在太長

private static MultiThreadedHttpConnectionManager connectionManager = null;
    private static int connectionTimeOut = 2000;t
    private static int socketTimeOut = 10000;
    private static int maxConnectionPerHost = 20;
    private static int maxTotalConnections = 20;
    private static HttpClient client;

    static {
        connectionManager = new MultiThreadedHttpConnectionManager();
        connectionManager.getParams().setConnectionTimeout(connectionTimeOut);
        connectionManager.getParams().setSoTimeout(socketTimeOut);
        connectionManager.getParams().setDefaultMaxConnectionsPerHost(maxConnectionPerHost);
        connectionManager.getParams().setMaxTotalConnections(maxTotalConnections);
        client = new HttpClient(connectionManager);
    }

然后我把socketTimeOut調整為2000,本地想測試下,結果。。。

java.lang.IllegalArgumentException: host parameter is null  調用接口報錯

查了下 http://wang371134086.iteye.com/blog/1688458  竟然調用http接口沒寫http://,加上這段解決

 

問題解決記錄下,感謝一下博客。

http://blog.csdn.net/xinying0424/article/details/36006383
http://wang371134086.iteye.com/blog/1688458

http://blog.sina.com.cn/s/blog_a577563c01013tlz.html

http://jinnianshilongnian.iteye.com/blog/2089792

http://www.zhihu.com/question/21647204


免責聲明!

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



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