|
楼主 |
发表于 2014-10-24 10:57
|
显示全部楼层
代理
如果服务器对同一IP有访问次数的限制,我们就要使用代理服务器了。
winhttp对象有SetProxy方法可以设置代理服务器,具体语句是:
SetProxy 2,"xxx.xxx.xxx.xxx:xxxx"
测试代码(代理服务器地址可能已失效):- Sub Main()
- Dim strText As String
- With CreateObject("WinHttp.WinHttpRequest.5.1")
- .SetProxy 2, "218.75.100.114:8080"
- .Open "GET", "http://20140507.ip138.com/ic.asp", False
- .send
- strText = ByteToStr(.Responsebody, "GB2312")'请自行拷贝之前的常用函数
- Debug.Print strText
- End With
- End Sub
复制代码 ---------------------------------------------------------------
小贴士:
不知大家在测试中发现没,fiddler可以抓到vba中xmlhttp发送请求,但无法抓到winhttp的发送请求。
有时我们调试时,会需要比较代码的发送请求与我们实际操作的发送请求是否一致,但fiddler无法抓到winhttp,怎么办呢?
你当然可以用其他抓包软件抓包。
但更快捷的做法就是,在winhttp中设置代理为"127.0.0.1:8888"。- .SetProxy 2,"127.0.0.1:8888"
复制代码 因为fiddler监视的8888端口,我们设定winhttp的数据由8888进出,fiddler就能抓到包了。 |
|