|
200精币
读取网页源码使用的是send和recv,使用多年大部分用户都没有任何问题
偶尔会碰到有个用户出现只接收到协yi头却没有网页源码的情况
这是个静态页面reg.htm 用浏览器访问正常 用我的软件访问就只有协yi头
出现这种问题的情况很少 也许100个会碰到1个 求大神们帮帮忙 找出原因
下面贴出send数据 和 2个接收到的数据(直接写出字节集,无文本转换过程)
1.以下是send数据:
GET /reg.htm HTTP/1.1
User-Agent: Mozilla/4.0
Accept: */*
Host: www.xxxxxxxx.com
Cache-Control: no-cache
2.以下是接收不完整的数据:
HTTP/1.1 200 OK
Content-Length: 5191
Content-Type: text/html
Last-Modified: Tue, 29 Nov 2016 13:09:57 GMT
Accept-Ranges: bytes
ETag: "929e1ae2414ad21:1d89"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Thu, 01 Dec 2016 07:25:52 GMT
3.以下是接收完整的数据:
HTTP/1.1 200 OK
Content-Length: 5191
Content-Type: text/html
Last-Modified: Tue, 29 Nov 2016 13:09:57 GMT
Accept-Ranges: bytes
ETag: "929e1ae2414ad21:1d89"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Thu, 01 Dec 2016 07:33:44 GMT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>注册页面</title>
<style type="text/css">
<!--
.STYLE1 { FONT-WEIGHT: bold; FONT-SIZE: 12px
}
.STYLE2 { FONT-SIZE: 12px
}
.style3 {color: #009933}
.style9 {color: #FF0000}
-->
</style>
</head>
<body>
<div align="center">
<TABLE cellSpacing=0 width=514 border=0>
<TBODY>
<TR>
......此处为最简单的10行表格......省略几百字
</TR>
</TBODY>
</TABLE>
</div>
</body>
</html>
|
最佳答案
查看完整内容
这个问题.我估计你贴到CSDN也很少有人知道
这个问题很偏僻
比较经典的就是百度的首页 不进行gzip压缩的时候
只返回http头
但是再次接收,就返回了BODY
解决办法也很简单
然后循环recv即可.你之前肯定是只send和recv了一次
如果recv返回0的时候,被阻塞等待时间长.HTTP头加上Connection:close搞定
如果这个办法不行.那么还有另外的办法
不过这个解决办法基本上还是比较通杀的
...
|