关于http header里的信息 我发现Last-Modified有的网页是取不到的,我想可能这个要服务器设置或者因为网页是动态的吧..但是为什么Content-Length也会有取不到的情况呢?如果连内容的长度都不知道的话不是会有很多问题么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我可能是根Web服务器有关系吧,毕竟每个服务器的实现机制是不一样的。 是不是关键字写错了,以前我取referrer时就写错了,所以没取到 确实有很多读不到Content-Length的情况如果遇上这种情况 就看socket是否读完 来判断是否退出我用c写过这样的程序,希望对楼主有些帮助char dlbuf[512];size_t sz;while ((sz = fd_read (fd, dlbuf, sizeof(dlbuf), timeout)) > 0){ //...}每次读入512个.如果读不出来了就说明没内容了其实我总感觉Content-Length提供的值不会太可靠。(个人感觉而已) 答:不明白楼主的意思啊。楼主的意思是不是说:有些网页,在读取它的HTTP响应头时,取不到Last-Modified这个响应头信息?Content-Length头也不一定所有的网页都有啊(只有服务器返回的网页中有HTTP BODY的数据时,服务器才会设置啊) 其实我是在做个爬虫程序,本来打算根据http header的一些信息来判断页面是否更新过.最开始是想用last-modified来判断,但是好多都没有这个信息,想想content-length总应该都有吧..发现也还是有没有的...比较郁闷.to:jiangnaisong 你说的"只有服务器返回的网页中有HTTP BODY的数据时,服务器才会设置啊"是什么意思? 答:Content-Length头也不一定所有的网页都有啊。比如:响应头含有:Transfer-Encoding协议头时,它就还会发送Content-Length协议头了。还有其它情况,也是不发送Content-Length协议头的。 有些网页是以 chunked 方式传输的,就没有 Content-Length 了。替你搜到一篇文章,先看看吧:http://www.cnpaf.net/class/HTTP/0532918532696341.html另外,LZ 想的这个办法并不是针对你的问题的“正宗”的办法。建议仔细研究一下 HTTP 协议吧,“如何判定内容是否修改过”是 HTTP 协议的一个专项内容。 求一个关于运算符的算法--满分200 Java中怎么把字符串数组转为整形数组 awt 错误 真的没错啊!可偏偏就是错的 ,郁闷了... 【求助】生成XML问题? 有关sql语句的问题!急!!!!! 用Java实现网络语音信号传送 Runtime.getRuntime().exec()函数,输入参数中的通配符(*)不能被UNIX解析,java的缺陷? Graphics中drawString怎么实现输出右对齐?求帮忙! 请教学习java的经验(对于初学者)? 如何在linux下安装2个不同的jdk 如何制作可执行的JAR文件包?(续)
如果遇上这种情况 就看socket是否读完 来判断是否退出我用c写过这样的程序,希望对楼主有些帮助
char dlbuf[512];
size_t sz;
while ((sz = fd_read (fd, dlbuf, sizeof(dlbuf), timeout)) > 0)
{
//...
}
每次读入512个.如果读不出来了就说明没内容了其实我总感觉Content-Length提供的值不会太可靠。(个人感觉而已)
to:jiangnaisong
你说的"只有服务器返回的网页中有HTTP BODY的数据时,服务器才会设置啊"是什么意思?