HttpWebRequest避免错误(500)
本文关键字:错误 HttpWebRequest | 更新日期: 2023-09-27 18:29:15
我正在使用webservice调用其他服务。我不得不用loop呼叫许多服务。
现在的问题是,当一些服务不可用时,循环就被打破了。
HttpWebRequest request = WebRequest.Create(stringBuilder.ToString()) as HttpWebRequest;
request.ContentType = "application/json; charset=utf-8";
request.Credentials = CredentialCache.DefaultCredentials;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK)
{
continue;
}
当服务不可用时(错误500),它在我检查状态代码之前就坏了。
response = (HttpWebResponse)request.GetResponse();
错误
我如何检查错误并继续使用其他服务进行呼叫?
这是经过设计的,并在文档中得到了很好的解释,请参阅:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse.aspx
如果引发WebException,请使用的"响应"answers"状态"属性确定来自服务器的响应的异常。
让你的代码看起来像:
HttpWebRequest request = WebRequest.Create(stringBuilder.ToString()) as HttpWebRequest;
request.ContentType = "application/json; charset=utf-8";
request.Credentials = CredentialCache.DefaultCredentials;
try
{
response = (HttpWebResponse)request.GetResponse();
// perform normal processing
}
catch(WebException ex)
{
// are you sure you just want to swallow the exception like this?
continue;
}