WinHttp.WinHttpRequest.5.1采集网页显示“服务器返回的信息无效或不可识别”

abjba 2016-01-04 09:41:27
有些网站在访问时返回的头信息不规范,例如:
http://ads.acesse.com/surf/?lang=2
返回的是“302”页面跳转地址,该段代码不规范,导致使用“WinHttp.WinHttpRequest.5.1” 采集是显示:

WinHttp.WinHttpRequest 错误 '80072f78'
服务器返回的信息无效或不可识别

把“WinHttp.WinHttpRequest.5.1” 改成
msxml2.serverxmlhttp.6.0
或者msxml2.serverxmlhttp.5.0
或者msxml2.serverxmlhttp.4.0
或者msxml2.serverxmlhttp.3.0
或者msxml2.serverxmlhttp.2.0
或者msxml2.serverxmlhttp

都是一样显示“服务器返回的信息无效或不可识别”。只有改成“msxml2.xmlhttp.5.0” 之类的才可以,但是我需要在服务器端运行,需要带有cookie,需要获取网页跳转的“302”页面网址,不能使用msxml2.xmlhttp.5.0” 之类。

请问有什么方法解决“服务器返回的信息无效或不可识别”的问题吗?

可能有人会说,在“WinHttp.WinHttpRequest.5.1” 加入“Http.Option(4) = 13056”代码实现“忽略错误标签”。但是已经测试过,不行。
...全文
1935 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28019121 2017-11-18
  • 打赏
  • 举报
回复
楼主您好,在下遇到了一样的问题,不知有没有解决办法
asdfg200646 2016-01-08
  • 打赏
  • 举报
回复
用相关的header()函数定义一下信息头
abjba 2016-01-08
  • 打赏
  • 举报
回复
一楼的回答显然是不行的,问题不在是否要跳转,而是 网站服务器端返回的头信息不规范,导致“WinHttp.WinHttpRequest.5.1”和“msxml2.serverxmlhttp.X.0”均显示“服务器返回的信息无效或不可识别”。
abjba 2016-01-08
  • 打赏
  • 举报
回复
网站服务器端返回的头信息不规范,在使用Wireshark进行抓包时就会发现,页面只会显示“302跳转”,但是抓包中却找不到“Location”。显然头信息是不规范的。
abjba 2016-01-08
  • 打赏
  • 举报
回复
由于网站服务器端返回的头信息不规范,导致“WinHttp.WinHttpRequest.5.1”和“msxml2.serverxmlhttp.X.0”均显示“服务器返回的信息无效或不可识别”的错误而自动终止,根据不会采集任何头信息,所以3楼的header()函数定义一下信息头 恐怕也无法实现。
Go 旅城通票 2016-01-07
  • 打赏
  • 举报
回复
WinHttpRequestOption_EnableRedirects = 6 然后GetResponseHeader获取location这个响应头

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧