多语言展示
当前在线:1488今日阅读:60今日分享:41

C#发送HTTP请求入门

介绍使用C#创建HttpWebRequest,发送HTTP请求,以及请求头的设置(如Cookie)和获取响应的简单流程。
工具/原料

C#(Visual Studio 2015)

方法/步骤
1

首先,这里给出一个HTTP请求设置的示例,包括请求头的设置和响应获取,其中有很多注意事项将在后续步骤展开说明。

2

创建请求第一步:创建HttpWebRequest。使用函数WebRequest.CreateHttp(url)即可。一定要注意:返回对象类型是HttpWebRequest,而不是WebRequest,如果声明为WebRequest稍后将无法设置HTTP请求头。

3

创建请求第二步:通过HttpWebRequest的属性设置部分请求头信息。包括Method方法,Accept接受数据类型,Host,Referer链接来自页,UserAgent用户环境(浏览器等信息)。

4

另外一些信息,则需要使用其Headers成员的Add函数来添加。比图Accept-Encoding接受的编码,Accept-Language接受语言与偏好。注意:无法使用Connect属性设置Keep-Alive,而是要设置KeepAlive为TRUE,如图所示。

5

注意:以上的一些直接用属性设置的信息(比如Referer,Accept),虽然在HttpRequestHeader枚举下面也有,但是不可以使用Headers成员的Add来添加。必须使用属性直接设置。否则会报错如图。

6

Cookies的设置既可以用直接的属性,也可以用Headers.Add,如下是使用后一种方法设置Cookies。

7

使用GetResponse()获取请求。注意:后接as HttpWebResponse以直接视为HttpWebResponse,否则获取的Response很多类成员函数用不了。注意:断网或者404都会抛出WebException。需要自行处理。

9

使用如下代码,创建GZipStream解压gzip数据,然后再创建StreamReader按照UTF8编码读出响应内容。

注意事项
1

如果成功,响应的StatusCode会得到OK。

2

注意:之所以用到gzip解压,是因为请求头中AcceptEncoding的设置表示本客户端支持gzip压缩,并且服务端收到了消息且也支持gzip。收到的响应头Content-Encoding也表明了响应数据是gzip压缩。

推荐信息