我無法按照示例獲取回調。不要從BeginGetResponse接收回調
我有以下代碼:
private void startWebRequest(object sender, EventArgs e)
{
Uri url = new Uri("http://localhost.com/dummyGet");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);
}
private void ReadWebRequestCallback(IAsyncResult callbackResult)
{
Console.WriteLine("Don not get here");
try
{
var req = (HttpWebRequest)callbackResult.AsyncState;
using (var response = req.EndGetResponse(callbackResult))
{
Console.WriteLine("Code");
}
}
catch
{ }
}
我一直BANGIN我的頭這一切的一天,我可以看到在我的瀏覽器的GET請求,或在提琴手/ Wireshark的客戶端。但代碼(ReadWebRequestCallback)不會被調用。
編輯: 還要注意的是,如果我使用Web客戶端和DownloadStringAsync它的工作原理,但我需要比404和200:
_client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted);
_client.DownloadStringAsync(_concurrentCheckUrl);
}
private void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{// Works, gets here}
試着繞過request.BeginGetResponse,看看是否有一些異常提出 – 2012-07-10 15:24:18
看起來好像不會引發異常。 – Nitro 2012-07-10 15:33:17
考慮到你用一個空的'catch {}'吞下任何異常,你怎麼知道它沒有進入ReadWebRequest? – user7116 2012-07-10 15:33:57