0

Webリクエストに問題があります...

無効な URL を使用すると、プログラムがハングします。/ インターネットで、それと関係があることを読み、(async)GetResponseを使用する必要がありますか?BeginGetResponse

非同期でいろいろコードを試してみましたがうまくいきません...

私が持っているもの(無効なURLでハングします):

            WebRequest request;
            request = WebRequest.Create(url);

            WebResponse webResponse = request.GetResponse();

            Stream ReceiveStream = webResponse.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(ReceiveStream, encode);


            reader = new XmlTextReader(readStream);
            String[] login = new String[1];


            reader.Read();
            reader.ReadStartElement("response");

            reader.ReadStartElement("item");
            login[0] = reader.ReadString();


            reader.ReadEndElement();
            reader.ReadEndElement();

            reader.Close();

私が試したこと:

    private HttpWebResponse response;
    private void FinishWebRequest(IAsyncResult result)
    {
        response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as       HttpWebResponse;
    }

    public void Read()
    {

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);

            Stream ReceiveStream = response.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(ReceiveStream, encode);


            reader = new XmlTextReader(readStream);

しかし、ここでInvalidOperation例外が発生します(有効な/存在するURLであっても)。わかりません。

4

1 に答える 1