0
我正在做一个异步HttpWebRequest,如果失败,我想调用一个备份Web服务。像这样:HttpWebRequest异常处理
public void CallService1()
{
HttpWebRequest request = HttpWebRequest.Create("http://MyFirstWebService")
request.BeginGetResponse(this.CallService1Completed, request);
}
public void CallService1Completed(IAsyncResult result)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result))
{
using (Stream responseStream = response.GetResponseStream())
{
// Use Data
}
}
}
catch (WebException webException)
{
if (?????)
{
CallBackupService2();
}
}
}
请记住,这是一个移动应用程序,你可能并不总是有互联网连接。如果没有互联网连接,我不想拨打备用服务。如果第一个服务由于某种原因关闭,我只想调用备份服务。我会在上面的'IF'声明中做什么?
据我了解,我们建议尝试HttpWebRequest的,而不是试图做这样的判断是因为,这是一个阻塞调用。没有办法通过WebException获取这些信息,这也会更快。 – anon 2011-03-08 11:34:38
也可以使用WebException.Status字段。 http://msdn.microsoft.com/en-us/library/system.net.webexceptionstatus.aspx – ShahidAzim 2011-03-08 12:17:18