我正在使用HTTP Web請求類來調用RESTful Web服務。我需要傳遞數據並接收數據,而且這一切似乎都很好。今天我試圖配置課程超時,因爲服務器運行服務的可能性很低,我不想浪費時間等待。我把它全部配置好了,但似乎沒什麼區別。在失敗之前,電話仍然等待超過10秒鐘。爲HttpWebRequest超時問題構建解決方法
在研究它時,我發現超時只處理呼叫的處理,而且事先不包含DNS查詢。因爲這會是問題,所以爲什麼超時沒有按照我的預期工作是有意義的。
進一步閱讀建議使用異步樣式中的HttpWebRequest類來代替。我已經看過了這樣做的代碼,但不明白如何在我的代碼中檢索有效同步的回調。
我的代碼如下是這樣:
HttpWebRequest _serviceRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://mywebservice.com"));
_serviceRequest.Timeout = 3000;
HttpWebResponse response = (HttpWebResponse)_serviceRequest.GetResponse();
XmlReader reader = XmlReader.Create(response.GetResponseStream(), set);
我有異步調用與下面一行結束的代碼,但我不知道,以我應該做的得到的迴應是什麼目的。
IAsyncResult result = (IAsyncResult)req.BeginGetResponse(new AsyncCallback(RespCallback), reqState);
我也關心這樣的一個半熟的異步解決方案。通過同步代碼段使用異步方法是一種好的做法。
任何助手贊賞...調用回調函數RespCallback時
但我的問題是,當你在一個同步場景,如aspx頁面或在我的情況下,一個wcf服務調用時,你如何處理這個問題。如何暫停我的代碼以等待回調? – 2011-05-31 09:02:36
用此評論的答案更新了回覆 – carlosfigueira 2011-05-31 15:31:22