0

私には WebRequest.Create(url) が少しずつ失敗するようです..

説明:

  • 失敗した(またはSystem.Net.WebExceptionをスローした)URLで...その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倍遅く反応し、そのようなURLをロードするとFirefoxがクラッシュすることもあります

では、質問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();

だから.. 考え?

4

0 に答える 0