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("\r\nResponse Status Code is OK and StatusDescription is: {0}", myHttpWebResponse.StatusDescription);
// Releases the resources of the response.
myHttpWebResponse.Close(); }
catch(WebException e)
{
Console.WriteLine("\r\nWebException Raised. The following error occured : {0}",e.Status);
}
catch(Exception e)
{
Console.WriteLine("\nThe following Exception was raised : {0}",e.Message);
}
}

HttpStatusCode 枚举的值,可以参考:

  成员名称 说明
Accepted 等效于 HTTP 状态 202。  Accepted   指示请求已被接受做进一步处理。 
Ambiguous 等效于 HTTP 状态 300。  Ambiguous   指示请求的信息有多种表示形式。  默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 标头的内容。

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

Ambiguous   是 MultipleChoices 的同义词。

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

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

Found   是 Redirect 的同义词。

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

Moved   是 MovedPermanently 的同义词。

MovedPermanently 等效于 HTTP 状态 301。  MovedPermanently   指示请求的信息已移到 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。

MovedPermanently   是 Moved 的同义词。

MultipleChoices 等效于 HTTP 状态 300。  MultipleChoices   指示请求的信息有多种表示形式。  默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 标头的内容。

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

MultipleChoices   是 Ambiguous 的同义词。

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

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

Redirect   是 Found 的同义词。

RedirectKeepVerb 等效于 HTTP 状态 307。  RedirectKeepVerb   指示请求信息位于 Location 头中指定的 URI 处。  接收到此状态时的默认操作为遵循与响应关联的 Location 头。  原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。

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

RedirectKeepVerb   是 TemporaryRedirect 的同义词。

RedirectMethod 等效于 HTTP 状态 303。  作为 POST 的结果,RedirectMethod 将客户端自动重定向到 Location 头中指定的 URI。  用 GET 生成对 Location 标头所指定的资源的请求。

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

RedirectMethod   是 SeeOther 的同义词。

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

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

SeeOther   是 RedirectMethod 的同义词。

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

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

TemporaryRedirect   是 RedirectKeepVerb 的同义词。

Unauthorized 等效于 HTTP 状态 401。  Unauthorized   指示请求的资源要求身份验证。  WWW-Authenticate 头包含如何执行身份验证的详细信息。 
UnsupportedMediaType 等效于 HTTP 状态 415。  UnsupportedMediaType   指示请求是不支持的类型。 
Unused 等效于 HTTP 状态 306。  Unused   是未完全指定的 HTTP/1.1 规范的建议扩展。 
UpgradeRequired 等效于 HTTP 状态 426。  UpgradeRequired   指示客户端应切换为诸如 TLS/1.0 之类的其他协议。 
UseProxy 等效于 HTTP 状态 305。  UseProxy   指示请求应使用位于 Location 头中指定的 URI 的代理服务器。 

C#中判断一个网址是否可以打开的更多相关文章

  1. jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?

    1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自 ...

  2. java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

    在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断 ...

  3. Mysql中判断一个点是否落在多边形内

    关于地理空间数据,经常需要处理两个空间数据的关联关系.有很多种方法可以处理,通过编写程序算法,或者是调用数据库中对应的function.在mysql数据库中,https://dev.mysql.com ...

  4. shell中判断一个变量是否为0或者为某个具体的值

    需求说明: 在实际写脚本的过程中,需要判断某个变量的值是否为某个数字, 比如,判断某个进程的数量是否为0用来确定进程是否存在,这样的情况. 简单来说,算术比较. 测试过程: 通过以下的脚本来判断mys ...

  5. C#中判断一个数组中是否存在某个数组值 及相关

    声明:reference:http://www.cnblogs.com/icebutterfly/archive/2010/06/22/1762738.html:http://blog.csdn.ne ...

  6. shell脚本中判断一个字符串是否是空字符串

    需求说明: 在写脚本的时候,有的时候,需要判断一个字符串是否为空,因此,在此写出如何判断一个字符串为空的方法. 简单来说,就是字符串的比较. 测试脚本: 以下的脚本用于测试str_1和str_2是否是 ...

  7. linux中判断一个命令是否执行成功

    每一条基本命令执行后都有一个返回码,该返回码是用$?表示,执行成功的返回码是0,例如:if [ $? -ne 0 ];then 上一命令执行失败时的操作else 上一命令执行成功时的操作fi例如lin ...

  8. iOS中判断消息推送是否打开

    根据 [[UIApplication sharedApplication] enabledRemoteNotificationTypes] 的返回值来进行判断,该返回值是一个枚举值,如下: typed ...

  9. Python中判断一个中文是否中文数字的方法

    Python内置功能非常强大,在字符串内置函数中提供了一个判断字符串是否全数字的方法,而且这个方法不只是简单判断阿拉伯数字,包括中文数字和全角的阿拉伯数字都认识,这个函数就是字符串的isnumeric ...

随机推荐

  1. 用JS写的简单轮播特效

    效果如下 功能分析 1.每隔1秒换一张图片 2.鼠标移入停止切换.鼠标离开继续切换 3.鼠标移入到数字上面的时候,显示和数字对应的图片,并且停止切换,被选中的数字,背景显示橙色 4.鼠标离开数字,从该 ...

  2. oracle中的decode的使用

    含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

  3. Websocket协议之php实现

    前面学习了HTML5中websocket的握手协议.打开和关闭连接等基础内容,最近用php实现了与浏览器websocket的双向通信.在学习概念的时候觉得看懂了的内容,真正在实践过程中还是会遇到各种问 ...

  4. C#网络通信

    Server: using System.Net; using System.Net.Sockets; using System; using System.Collections.Generic; ...

  5. Objective-C中class、Category、Block的介绍

    @class 当定义一个类,必须为编译器提供两组消息,第一组(接口部分.h):构建类的实例的一个基本蓝图.必须指定类名,类的超类,类的实例变量和类型的列表,最后是类的方法的声明.第二组(实现部分.m) ...

  6. 手把手教你写LKM rookit! 之 杀不死的pid&root后门

    ......上一节,我们编写了一个基本的lkm模块,从功能上来说它还没有rootkit的特征,这次我们给它添加一点有意思的功能.我们让一个指定的进程杀不死, 曾经,想写一个谁也杀不死的进程,进程能捕捉 ...

  7. Java 动态代理(转载)

    JAVA的动态代理  代理模式  代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后 处理消息等.代理类与 ...

  8. Ubuntu下Sublime Text 3无法输入中文的解决方案

    1. 保存下面的代码到文件sublime_imfix.c中: /* * sublime-imfix.c * Use LD_PRELOAD to interpose some function to f ...

  9. django开发框架-view & template

    django框架的主要模型是MVT,Model模型,View视图,Template模板,基于基本的HttpRequest方式. django支持的数据库有四种:PostgreSQL,MySQL, Or ...

  10. android应用activity中调出输入法后界面调整问题的解决

    在自己写的一个小应用中发现一个问题,当调出输入法后界面最下方的一个按钮被挤到了输入法的上面,这样很不美观,所以找了一下解决办法记录如下: 在AndroidManifest.xml文件中找到对应的act ...