C#(Visual Studio 2015)
首先,这里给出一个HTTP请求设置的示例,包括请求头的设置和响应获取,其中有很多注意事项将在后续步骤展开说明。
创建请求第一步:创建HttpWebRequest。使用函数WebRequest.CreateHttp(url)即可。一定要注意:返回对象类型是HttpWebRequest,而不是WebRequest,如果声明为WebRequest稍后将无法设置HTTP请求头。
创建请求第二步:通过HttpWebRequest的属性设置部分请求头信息。包括Method方法,Accept接受数据类型,Host,Referer链接来自页,UserAgent用户环境(浏览器等信息)。
另外一些信息,则需要使用其Headers成员的Add函数来添加。比图Accept-Encoding接受的编码,Accept-Language接受语言与偏好。注意:无法使用Connect属性设置Keep-Alive,而是要设置KeepAlive为TRUE,如图所示。
注意:以上的一些直接用属性设置的信息(比如Referer,Accept),虽然在HttpRequestHeader枚举下面也有,但是不可以使用Headers成员的Add来添加。必须使用属性直接设置。否则会报错如图。
Cookies的设置既可以用直接的属性,也可以用Headers.Add,如下是使用后一种方法设置Cookies。
使用GetResponse()获取请求。注意:后接as HttpWebResponse以直接视为HttpWebResponse,否则获取的Response很多类成员函数用不了。注意:断网或者404都会抛出WebException。需要自行处理。
使用如下代码,创建GZipStream解压gzip数据,然后再创建StreamReader按照UTF8编码读出响应内容。
如果成功,响应的StatusCode会得到OK。
注意:之所以用到gzip解压,是因为请求头中AcceptEncoding的设置表示本客户端支持gzip压缩,并且服务端收到了消息且也支持gzip。收到的响应头Content-Encoding也表明了响应数据是gzip压缩。