http发送get请求的总结

1.首先得用到WSADATA的东西(头文件如#include <winsock.h>)。

       WSADATA wsaData;
	WORD wVersionRequested = MAKEWORD(1,1);
	int nRet;
	nRet = WSAStartup(wVersionRequested, &wsaData);
	if (nRet)
	{
		fprintf(stderr,"\nError initializing WinSock\n");
		return ;
	}
	if (wsaData.wVersion != wVersionRequested)
	{
		fprintf(stderr,"\nWinSock version not supported\n");
		return ;
	}

2.发送的数据请求的头数据包如下:

strSend += " HTTP/1.0\r\n";
strSend += "Host: " + strHost + "\r\n";
strSend += "Accept: */*\r\n";
strSend += "Accept-Language: zh-cn\r\n";
// strSend += "Accept-Encoding: gzip, deflate\r\n";//update by
strSend += "User-Agent: Mozilla/4.0\r\n";

3.如果的数据小的话,就不需要采用压缩的方式。如果数据的文件过大就需要采用压缩数据的方式发送请求.

strSend += " HTTP/1.0\r\n";
strSend += "Host: " + strHost + "\r\n";
strSend += "Accept: */*\r\n";
strSend += "Accept-Language: zh-cn\r\n";
strSend += "User-Agent: Mozilla/4.0\r\n";

4.原因如下:

Accept-Encoding: gzip,deflate
IE和我们的代码使用的HTTP头里面都有这条内容,将这条内容删掉我得到了正确的结果。原因如下:
这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE在接收完成后在本地对这个文件又进行了解压操作,所以文件内容是正确的。而在我们的代码里是将这些内容直接存入文件,不存在解压缩的过程,所以Size变小,内容也不一样。
细心的人可以发现在,IE在Down某一个比较大一点的东西时,Down的过程中显示的大小,比Down下来实际大小要小,这就是因为在接收的过程中接收的是压缩文件,而存到本地后的文件当然要大一些了哈~~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值