如何解决为什么在WP7仿真器中没有捕获C#.NET WebException?
| 我正在开发Windows Phone 7应用,我需要在我们公司的REST api上放置一些数据。 我正在测试此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();
}
解决方法
研究表明,Silverlight 3及更高版本中有一个新的ClientHttp堆栈。
http://msdn.microsoft.com/zh-cn/library/dd920295(v=vs.95).aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。