WPF.net4.0アプリケーションを使用しています。検索バーがあります。検索トークンごとに、検索結果を取得するために8つの個別のURLに対して8つのhttpリクエストを実行する必要があります。ユーザーが検索バーへの入力を停止してから400ミリ秒後に、サーバーに8つのリクエストを送信します。6〜7個の検索トークンの結果を検索すると非常にうまくいきます。しかしその後、突然HttpWebRequestがサイレントに動作を停止します。例外はスローされず、応答は受信されませんでした。私はWindows7を使用していますが、ファイアウォールも無効にしました。後続のhttpリクエストがどこで失われるかわかりません。
誰かがこの問題を解決するために私にライトを見せてもらえますか?
以下は、HttpWebRequest呼び出しのコードです。
public static void SendReq(string url)
{
// Create a new HttpWebRequest object.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Proxy = new WebProxy("192.168.1.1", 8000);
// Set the Method property to 'POST' to post data to the URI.
request.Method = "POST";
// start the asynchronous operation
request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);
}
private static void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
Stream postStream = request.EndGetRequestStream(asynchronousResult);
string postData = this.PostData;
// Convert the string into a byte array.
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Write to the request stream.
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
// Start the asynchronous operation to get the response
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
using(HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult))
{
using(Stream streamResponse = response.GetResponseStream())
{
using(StreamReader streamRead = new StreamReader(streamResponse))
{
string responseString = streamRead.ReadToEnd();
Debug.WriteLine(responseString);
}
}
}
}