如何使用http和winsock加载网页?

时间:2013-11-10 11:52:19

标签: c++ http winsock

我是网络编程的新手。

当我向服务器(在本例中为google)发送http请求时,此回复:

HTTP/1.1 302 Found
Location: http://www.google.nl/?gws_rd=cr&ei=zXB_UumcEMiU4ASSqYG4Dg
Cache-Control: private Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=0eb6ec4d3c54822b:FF=0:TM=1384083661:LM=1384083661:S=8KDjothF0RLKUwxF; expires=Tue, 10-Nov-2015 11:41:01 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=ewT0so-Raq7uuSU_0DOqs08Ywb4EADK4kyGRnQesMqPx6DY23bHp4S5c9K2WbjCIFKe739Ya4L8VOcmBHm2QY9kR1sDH70L9jBU2XNJG3WrvtWiHH-uawg2Nli7mn1iK; expires=Mon, 12-May-2014 11:41:01 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Date: Sun, 10 Nov 2013 11:41:01 GMT
Server: gws
Content-Length: 258
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic 

我的要求:

HEAD / HTTP/1.1
Host: www.google.com
User-agent: HeadReqSample

我知道302代码意味着我得到了一个重定向,但我该如何处理呢?如果我连接到其他服务器/网站(www.example.com),我会收到此回复:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Sun, 10 Nov 2013 11:48:51 GMT
Etag: "359670651"
Expires: Sun, 17 Nov 2013 11:48:51 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (iad/1984)
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270 

我该怎么办?

1 个答案:

答案 0 :(得分:0)

你应该怎么做?这实际上取决于你想做什么。但通常情况下,您必须寻找重定向并按照它来显示/显示最终的网页。

但总的来说,这实际上取决于实际的网页/实施。

例如,程序的实际响应可能隐藏在使用重定向发送的标头中,而新位置是人类可读的页面(例如,下载相关的供稿阅读器或其他内容)。

如果您只想下载文件,可以使用URLDownloadToFile来避免担心HTTP标头等。如果您需要跨平台解决方案,请使用一些实现下载的库,例如libcurl