1
我正在開發一個Windows Phone 7應用程序,我需要在我們公司的REST API上添加一些數據。爲什麼C#.NET WebException未被WP7仿真器捕獲?
我正在測試這個API調用,並且遇到了一個我無法捕捉的WebException。我的電話最初是在一個lambda中,所以我將它拉出到成員函數中,但仍然沒有運氣。
錯誤字符串是「遠程服務器返回錯誤:NotFound」。這並不出乎意料,我的應用嘗試的URI可能無效,因爲我搞砸了,或者因爲我們的登臺服務器關閉了。
如果我無法捕捉到這個異常,我該如何檢查我的請求是否失敗?
這裏是我的玩具例子:
void TriggerApiCall()
{
var request = HttpWebRequest.Create(new Uri(
"http://api.ourcompany.com" +
"/stuff/" +
someParameterizedPath + "?" +
"firstParam=" + someClassMember +
"&secondParam=8badf00d"));
request.Method = "PUT";
request.BeginGetResponse(TryCall, request);
}
private void TryCall(IAsyncResult result)
{
HttpWebRequest request = result.AsyncState as HttpWebRequest;
var completed = result.IsCompleted;
WebResponse response = null;
try {
bool hasresp = request.HaveResponse;
response = request.EndGetResponse(result);
} catch (Exception e) {
System.Diagnostics.Debug.WriteLine(e); // Never reaches here,
// Exception propagates to top
}
response.Close();
}
它在真實設備上工作嗎?仿真器不能100%信任。 – 2011-05-31 20:58:17
不幸的是,仍然在等待設備+ AppHub帳戶通過。我會測試這個問題並在我們得到它時更新這個問題。同時,我想知道是否有其他人遇到過這種情況,並可能找到解決辦法。 – 2011-05-31 21:07:00
只是一個側面說明。遠程服務器返回錯誤。 NotFound'錯誤消息並不一定意味着錯誤是由於找不到服務器而導致的。可能還有其他原因,可能會在別處拋出。 – keyboardP 2011-05-31 21:07:50