[英]C# How can I get server error from a URL?
We have a url and we need to check whether web page is active or not. 我们有一个网址,我们需要检查网页是否处于活动状态。 We tried following code: WebResponse objResponse = null;
我们尝试了以下代码:WebResponse objResponse = null;
WebRequest objRequest = HttpWebRequest.Create(URL);
objRequest.Method = "HEAD";
try
{
objResponse = objRequest.GetResponse();
objResponse.Close();
}
catch (Exception ex)
{
}
Above code gave exception if unable to get a response but also works fine even if we have a "server error" on that page? 如果无法获得响应,以上代码给出了异常,但是即使该页面上出现“服务器错误”,它也可以正常工作吗? Any help how to get server error?
任何帮助如何获取服务器错误?
The HttpResponse
class has a StatusCode
property which you can check. HttpResponse
类具有StatusCode
属性,您可以检查该属性。 If it's 200 everything is ok. 如果是200,一切正常。
You can change your code to this: 您可以将代码更改为此:
HttpWebResponse objResponse = null;
var objRequest = HttpWebRequest.Create("http://google.com");
objResponse = (HttpWebResponse) objRequest.GetResponse();
if(objResponse.StatusCode != HttpStatusCode.OK)
{
Console.WriteLine("It failed");
}else{
Console.WriteLine("It worked");
}
For one thing, use a using
statement on the response - that way you'll dispose of it whatever happens. 一方面,在响应上使用
using
语句-这样一来,无论发生什么情况,您都将对其进行处理。
Now, if a WebException
is thrown, you can catch that and look at WebException.Response
to find out the status code and any data sent back: 现在,如果引发了
WebException
,则可以捕获该异常并查看WebException.Response
以找出状态码和发送回的任何数据:
WebRequest request = WebRequest.Create(URL);
request.Method = "HEAD";
try
{
using (WebResponse response = request.GetResponse())
{
// Use data for success case
}
}
catch (WebException ex)
{
HttpWebResponse errorResponse = (HttpWebResponse) ex.Response;
HttpStatusCode status = errorResponse.StatusCode;
// etc
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.