Xmlhttp/ServerXmlhttp无法传送/伪造 Referer 问题解决方案
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
最近遇到点头大的问题,网站采集一些数据时总是失败,采不到东西,后来手动用浏览器测试时发现是人家做了防盗链,直接采是采不到了,不过一般防盗也就是加个referer识别,试着加了一下,结果失败。。。但还是不死心,为了一探究竟,载了个sniffer,对比了用浏览器可以正常浏览的数据和采集程序发送的数据,发现采集系统发送的请求中referer为空,但是代码中的确是设置了referer的,是用ServerXmlhttp做的,以前一直都是好使的,但这次不知道为什么死活就是不听话。 后来百度了半天,终于看到一条有用的信息,说是微软出于安全方面考虑,禁止了xmlhttp组件发送referer等,看来用这个组件采集数据的站点有很多都要受影响了,偷点东西是真累呀,不过好在微软还给咱留了个小窗口,那就是winhttp组件,这个组件暂时还是可以用的,测试了一下果真可以写referer了,这回OK了,折腾了半天总算是有点收获,不敢独享,发上来给遇到同样问题的朋友参考。 以下为asp代码 <%
Function GetURL(psReqURL) dim oWinHttp Set oWinHttp =Server.CreateObject("WinHttp.WinHttpRequest.5.1") oWinHttp.SetTimeouts 60000, 60000, 60000, 3000 oWinHttp.Option(4) =13056 oWinHttp.Option(6) =True oWinHttp.Open "GET", psReqURL, False oWinHttp.SetRequestHeader "Referer", psReqURL oWinHttp.SetRequestHeader "Connection", "Close" oWinHttp.Send oWinHttp.WaitForResponse If oWinHttp.Status =200 Then GetURL =oWinHttp.ResponseBody Else GetURL =Null End If Set oWinHttp =Nothing End Function %> 更多关于winhttp组件的用法自己百度。 该文章在 2012/8/18 9:54:09 编辑过 |
关键字查询
相关文章
正在查询... |