0

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

说明:

  • 在失败的 url 上(或抛出 System.Net.WebException)...将该 url 复制粘贴到浏览器中似乎可以工作..浏览器给出响应!..有时会出现明显的延迟(约 10 秒) ..但不到 3 秒的 WebRequest 抛出异常

失败的有效 url 示例:

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 在这个 url 上的反应慢了 10 倍,这个资源管理器,有时 firefox 在加载这样的 url 时会崩溃

那么问题为什么WebRequest这么快就失败了?我希望它更努力地从 URL 获得响应......

这是捕获异常的方法(在这里我检查 url 是否有效或〜“跟踪器是否存在??”)

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();

所以..想法?

4

0 回答 0