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"的脚本引擎 解决办法

    在命令行运行JScript脚本时,遇到如下的错误提示: “输入错误: 没有文件扩展“.js”的脚本引擎.” 这样的错误,原因是因为JS扩展名的文件被其他软件关联了,需要取消关联. 如系统中安装了ULT ...

  2. corsproxy

    安装完 node.js运行 npm install -g corsproxy安装完成 corsproxy

  3. Determining IP information for eth0… failed; no link present. Check cable

    [root@hexuweb101 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0添加下面代码: check_link_down () { return ...

  4. 【BZOJ 1067】 [SCOI2007]降雨量

    Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2 ...

  5. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

  6. apache本地和局域网访问设置

    apache本地和局域网访问设置 最近做项目需要同事ajax发项目给我,因为是测试环境,所以需要能访问我的服务器.我服务器直接用的wampserver.因为没有接触过,所以百度了一下,都是没有成功,后 ...

  7. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  8. Linux的安装 CentOS-7.1

    说明: 首先,版本:7.1版:CentOS-7-x86_64-Everything-1503-01.iso 下载自:http://mirrors.163.com/centos/7/isos/x86_6 ...

  9. Java调用SQLCMD遇到的问题

    今天用Java调用SQLCMD命令时,一直提示找不到SQLCMD命令,但是通过CMD命令确可以使用,因为我的sqlcmd是新安装的,所以重新配置了新的path路径,而cmd可以调用是因为重新开一个cm ...

  10. 安装oracle 11g详细过程仅供参考