C# HttpWebRequest避免错误(500)

C# HttpWebRequest避免错误(500),c#,C#,我正在使用webservice调用其他服务。我必须用loop调用许多服务 现在的问题是,当一些服务不可用时,循环就中断了 HttpWebRequest request = WebRequest.Create(stringBuilder.ToString()) as HttpWebRequest; request.ContentType = "application/json; charset=utf-8"; request.Credentials = CredentialCache.Defaul

我正在使用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),在我检查statusCode之前它就被破坏了

response=(HttpWebResponse)请求时出错。GetResponse()


如何检查错误并继续使用其他服务进行呼叫?

这是经过设计的,并在文档中进行了详细说明,请参阅:

如果引发WebException,请使用的响应和状态属性 用于确定服务器响应的异常

使您的代码看起来像:

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;
}

GetResponse()在“中断”时是否会抛出异常(或您可能捕获的特定信号)?确实找到了这篇文章,可能会有所帮助;)@是的,它抛出了一个异常。但我需要避免错误并运行到下一个服务的循环。