我写了一个包装器,有时我会在下一行收到内部错误500:
using(var response = request.GetResponse() as HttpWebResponse)
{
// Additional logic.
}
我想处理异常,但我不能使用request.HaveResponse()
因为请求在技术上是有效的,所以当我的代码尝试获取响应时会抛出错误,{{1} }。我不想包装一个额外的try catch块。 存在一些用于验证状态代码的逻辑,但没有添加,因为该块无法纠正或阻止有问题的代码行。
整个方法:
System.Net.WebException
答案 0 :(得分:1)
如果您真的想看起来没有使用Exceptions,您可以随时编写自己的扩展方法,例如(kick& dirty,我没有使用过IDE):
public static bool HasErrorResponse(HttpWebRequest request, out WebResponse response)
{
try
{
response = request.GetResponse();
return true;
}
catch (WebException ex)
{
return false;
}
}
答案 1 :(得分:0)
为什么在发出HaveResponse
之前检查GetResponse
?
我会替换:
if(request.HaveResponse())
using(var response = request.GetResponse() as HttpWebResponse)
使用:
using (var response = request.GetResponse() as HttpWebResponse){
if(response.StatusCode == HttpStatusCode.OK){
}
}