C#中判断一个网址是否可以打开

public static void GetPage(String url) 
{
    try
      {
        // Creates an HttpWebRequest for the specified URL.
        HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
// 有些网站会阻止程序访问,需要加入下面这句
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
        myHttpWebRequest.Method = "GET";
// Sends the HttpWebRequest and waits for a response. HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); if (myHttpWebResponse.StatusCode == HttpStatusCode.OK) Console.WriteLine(" Response Status Code is OK and StatusDescription is: {0}", myHttpWebResponse.StatusDescription); // Releases the resources of the response. myHttpWebResponse.Close(); } catch(WebException e) { Console.WriteLine(" WebException Raised. The following error occured : {0}",e.Status); } catch(Exception e) { Console.WriteLine(" The following Exception was raised : {0}",e.Message); } }

HttpStatusCode 枚举的值,可以参考:

 成员名称说明
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Accepted 等效于 HTTP 状态 202。  Accepted   指示请求已被接受做进一步处理。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Ambiguous 等效于 HTTP 状态 300。  Ambiguous   指示请求的信息有多种表示形式。  默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 标头的内容。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 Ambiguous 将导致引发异常。

Ambiguous   是 MultipleChoices 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET BadGateway 等效于 HTTP 状态 502。  BadGateway   指示中间代理服务器从另一代理或原始服务器接收到错误响应。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET BadRequest 等效于 HTTP 状态 400。  BadRequest   指示服务器未能识别请求。  如果没有其他适用的错误,或者不知道准确的错误或错误没有自己的错误代码,则发送 BadRequest。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Conflict 等效于 HTTP 状态 409。  Conflict   指示由于服务器上的冲突而未能执行请求。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Continue 等效于 HTTP 状态 100。  Continue   指示客户端可能继续其请求。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Created 等效于 HTTP 状态 201。  Created   指示请求导致在响应被发送前创建新资源。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET ExpectationFailed 等效于 HTTP 状态 417。  ExpectationFailed   指示服务器未能符合 Expect 头中给定的预期值。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Forbidden 等效于 HTTP 状态 403。  Forbidden   指示服务器拒绝满足请求。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Found 等效于 HTTP 状态 302。  Found   指示请求的信息位于 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 Found 将导致引发异常。

Found   是 Redirect 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET GatewayTimeout 等效于 HTTP 状态 504。  GatewayTimeout   指示中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Gone 等效于 HTTP 状态 410。  Gone   指示请求的资源不再可用。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET HttpVersionNotSupported 等效于 HTTP 状态 505。  HttpVersionNotSupported   指示服务器不支持请求的 HTTP 版本。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET InternalServerError 等效于 HTTP 状态 500。  InternalServerError   指示服务器上发生了一般错误。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET LengthRequired 等效于 HTTP 状态 411。  LengthRequired   指示缺少必需的 Content-length 头。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET MethodNotAllowed 等效于 HTTP 状态 405。  MethodNotAllowed   指示请求的资源上不允许请求方法(POST 或 GET)。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Moved 等效于 HTTP 状态 301。  Moved   指示请求的信息已移到 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 

               Moved   是 MovedPermanently 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET MovedPermanently 等效于 HTTP 状态 301。  MovedPermanently   指示请求的信息已移到 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。 

               MovedPermanently   是 Moved 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET MultipleChoices 等效于 HTTP 状态 300。  MultipleChoices   指示请求的信息有多种表示形式。  默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 标头的内容。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 MultipleChoices 将导致引发异常。

MultipleChoices   是 Ambiguous 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NoContent 等效于 HTTP 状态 204。  NoContent   指示已成功处理请求并且响应已被设定为无内容。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NonAuthoritativeInformation 等效于 HTTP 状态 203。  NonAuthoritativeInformation   指示返回的元信息来自缓存副本而不是原始服务器,因此可能不正确。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NotAcceptable 等效于 HTTP 状态 406。  NotAcceptable   指示客户端已用 Accept 头指示将不接受资源的任何可用表示形式。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NotFound 等效于 HTTP 状态 404。  NotFound   指示请求的资源不在服务器上。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NotImplemented 等效于 HTTP 状态 501。  NotImplemented   指示服务器不支持请求的函数。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET NotModified 等效于 HTTP 状态 304。  NotModified   指示客户端的缓存副本是最新的。  未传输此资源的内容。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET OK 等效于 HTTP 状态 200。  OK   指示请求成功,且请求的信息包含在响应中。  这是最常接收的状态代码。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET PartialContent 等效于 HTTP 状态 206。  PartialContent   指示响应是包括字节范围的 GET 请求所请求的部分响应。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET PaymentRequired 等效于 HTTP 状态 402。  保留 PaymentRequired 以供将来使用。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET PreconditionFailed 等效于 HTTP 状态 412。  PreconditionFailed   指示为此请求设置的条件失败,且无法执行此请求。  条件是用条件请求标头(如 If-Match、If-None-Match 或 If-Unmodified-Since)设置的。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET ProxyAuthenticationRequired 等效于 HTTP 状态 407。  ProxyAuthenticationRequired   指示请求的代理要求身份验证。  Proxy-authenticate 头包含如何执行身份验证的详细信息。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Redirect 等效于 HTTP 状态 302。  Redirect   指示请求的信息位于 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 Redirect 将导致引发异常。

Redirect   是 Found 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RedirectKeepVerb 等效于 HTTP 状态 307。  RedirectKeepVerb   指示请求信息位于 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 RedirectKeepVerb 将导致引发异常。

RedirectKeepVerb   是 TemporaryRedirect 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RedirectMethod 等效于 HTTP 状态 303。  作为 POST 的结果,RedirectMethod 将客户端自动重定向到 Location 头中指定的 URI。  用 GET 生成对 Location 标头所指定的资源的请求。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 RedirectMethod 将导致引发异常。

RedirectMethod   是 SeeOther 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RequestedRangeNotSatisfiable 等效于 HTTP 状态 416。  RequestedRangeNotSatisfiable   指示无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,或因为范围的结尾在资源的结尾之后。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RequestEntityTooLarge 等效于 HTTP 状态 413。  RequestEntityTooLarge   指示请求太大,服务器无法处理。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RequestTimeout 等效于 HTTP 状态 408。  RequestTimeout   指示客户端没有在服务器期望请求的时间内发送请求。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET RequestUriTooLong 等效于 HTTP 状态 414。  RequestUriTooLong   指示 URI 太长。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET ResetContent 等效于 HTTP 状态 205。  ResetContent   指示客户端应重置(或重新加载)当前资源。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET SeeOther 等效于 HTTP 状态 303。  作为 POST 的结果,SeeOther 将客户端自动重定向到 Location 头中指定的 URI。  用 GET 生成对 Location 标头所指定的资源的请求。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 SeeOther 将导致引发异常。

SeeOther   是 RedirectMethod 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET ServiceUnavailable 等效于 HTTP 状态 503。  ServiceUnavailable   指示服务器暂时不可用,通常是由于过多加载或维护。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET SwitchingProtocols 等效于 HTTP 状态 101。  SwitchingProtocols   指示正在更改协议版本或协议。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET TemporaryRedirect 等效于 HTTP 状态 307。  TemporaryRedirect   指示请求信息位于 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 

如果 HttpWebRequest.AllowAutoRedirect 属性为 false,则 TemporaryRedirect 将导致引发异常。

TemporaryRedirect   是 RedirectKeepVerb 的同义词。

受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Unauthorized 等效于 HTTP 状态 401。  Unauthorized   指示请求的资源要求身份验证。  WWW-Authenticate 头包含如何执行身份验证的详细信息。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET UnsupportedMediaType 等效于 HTTP 状态 415。  UnsupportedMediaType   指示请求是不支持的类型。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET Unused 等效于 HTTP 状态 306。  Unused   是未完全指定的 HTTP/1.1 规范的建议扩展。 
受以下版本支持:适用于 Windows 应用商店应用的 .NET UpgradeRequired 等效于 HTTP 状态 426。  UpgradeRequired   指示客户端应切换为诸如 TLS/1.0 之类的其他协议。 
受以下产品支持可移植类库受以下版本支持:适用于 Windows 应用商店应用的 .NET UseProxy 等效于 HTTP 状态 305。  UseProxy   指示请求应使用位于 Location 头中指定的 URI 的代理服务器。 
原文地址:https://www.cnblogs.com/wintalen/p/3901364.html