簡體   English   中英

使用apache http客戶端時java.net.UnknownHostException

[英]java.net.UnknownHostException when using apache http client

我正在使用HttpClient連接到一些第三方url.Its工作正常。但有時它給出了java.net.UnknownHostException以及連接Reset Excetion。 請幫助避免例外。

以下是我的代碼段。

    PostMethod post = null;
 try
 {
     for(int i =0 ; i < 72 ; i++)
     {
        String url ="http://www.accuweather.com/en/in/amritsar/205593//hourly-weather-forecast/205593?hour=0";
        post = new PostMethod(url);
        post.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=" + "UTF-8");
        post.setRequestHeader("Accept-Charset", "UTF-8");
        HttpClient httpclient = new HttpClient();
        httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 120000);
        httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 120000);

        result = httpclient.executeMethod(post);
     }
 }
 catch(Exception e){}
 finaly
 {
     post.releaseConnection();
 }

下面是異常跟蹤:

java.net.UnknownHostException: www.accuweather.com
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1.doit(ControllerThreadSocketFactory.java:91)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$SocketTask.run(ControllerThreadSocketFactory.java:158)
    at java.lang.Thread.run(Unknown Source)

很可能,你只是有一個片狀的互聯網連接。 我猜這是在手機上,在這種情況下,片狀互聯網連接是一種普遍的現實,你只需要以某種方式處理它。

當然,究竟什么是最好的處理方式取決於你的程序和背景。 由於您聲明定期運行此方法,因此處理它的一種方法可能是簡單地忽略錯誤(捕獲異常並在發生時立即靜默中止嘗試)然后等待下一次常規運行。 另一種選擇可能是重復嘗試一定次數。 我相信還有其他可想到的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM