System.Net.WebException

时间:2012-04-20 22:20:55

标签: c# exception webrequest

在我看来,WebRequest.Create(url)很快就会失败了。

说明:

  • 在一个url上,它失败了(或抛出了一个System.Net.WebException)...复制粘贴 - 将该url放入浏览器似乎工作..浏览器给出响应!..有时带有可重复的延迟(〜 10秒)..但WebRequest在不到3秒的时间内抛出异常

失败的有效网址示例:

http://tracker.podtropolis.com:2710/announce?info_hash=%92%FD%2F%0B%40%F64%C5%86%19%D6%3E%B1%28%B2%81%A1J%D4%F6&peer_id=-AZ2060-%AD%18%05o%11%A6%26%B3%C3%D16%AC&port=6881&downloaded=0&uploaded=0&left=647749313&numwant=30&compact=1&event=started

  • 如果它有任何意义,firefox对这个探测器的网址反应速度要慢10倍,有时火狐会在加载这样的网址时崩溃

所以问题为什么WebRequest这么快就失败了?我希望它更难以从URL获得响应......

这是捕获异常的方法(这里我检查url是否有效OR~“跟踪器是否活着?”)

public static bool isURLValid(string url)
    {
        try
        {
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "HEAD";
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            //Returns TURE if the Status code == 200
            return (response.StatusCode == HttpStatusCode.OK);
        }
        catch (Exception ex) //(WebException ex)
        {
            Logger.e(TAG, "isURLValid", ex);
            return false;  //Any exception will returns false.
        }
    }

如果有效我会得到流(我知道..我知道..双联系......但仍然)

inputStream = WebRequest.Create(fullURL).GetResponse().GetResponseStream();

那么......想法?

0 个答案:

没有答案