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であっても)。わかりません。