window 下用vbs 脚本访问url【定时访问接口很有用且高效】

来源:互联网 发布:怎么找淘宝达人合作 编辑:程序博客网 时间:2024/05/21 19:44


       有时候我们需要用一个客户端去模拟人的行为去定时通过浏览器刷新或重新访问一个url,以便去执行,获取一些数据,查看一些状态等等。在Linux系统可以用编辑crontab文件设置定定时任务,用curl 这个功能去模拟访问url,但我在window下怎么解决呢?开始我想用批处理命令,后发现不能执行一些window里的程序,后来查到用cscript 这个命令可以在控制台窗口无视窗的情况下显示输出,关键是可以直接执行vbs,而vbs 可以编写一些复杂的代码。在vbs中写了一个死循环,然后用xmlHttp这个组件去访问一个url

提供了很多的方法和属性,其实ajax的就是通过这个组件实现的,让这个组建同步执行,把url返回的字符串打印输出到控制台中,其实url那边是一个apache,访问的外部接口URL是通过curl,这样一圈转的。


'启动命令 cscript test.vbs http://web.internetedu.org.cn/home/umeng/test'cscript test.vbs http://web.internetedu.org.cn/home/umeng'解释:cscript 执行脚本会在命令行显示输出,wscript 执行会弹出对话框窗口,'后面直接是vbs 文件,文件后面是第一个参数Dim Wshshell,Msg,i,URL'Set Wshshell = Wscript.CreateObject("Wscript.Shell")URL = WScript.Arguments(0)i=1arrHttp=array("Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP")On Error Resume Next'新建一个XMLHTTP组建For i=0 To 3    Set http=CreateObject(arrHttp(i))    If isObject(http) Then    Exit For    End If    nextIf isObject(http)=false Then  wscript.echo "XMLHttpRequest not supported"  Wscript.quitEnd if'u=Inputbox("URL:","输入URL地址") 'msgbox u'一个死循环do while true   http.open "POST", URL,FALSEhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"'http.onreadystatechange=getref("callback")http.send "id=1111&name=liangfang"  If http.readyState=4 And http.status=200 Then    wscript.echo http.responseText  Else  wscript.echo "XMLHTTP_CODE:"&http.readyState&"        HTTP_CODE:"&http.status  End If'If Err.Number <> 0 Then  '     wscript.echo "ERROR"'End If '显示发送次数'wscript.echo "SEND_COUNT:"&ii=i+1'延迟执行 30秒wscript.Sleep 30*1000loop'只有异步的时候才需要,现在是同步所以没有执行Public Function callback()  If http.readyState=4 And http.status=200 Then    wscript.echo http.responseText  Else  wscript.echo "XMLHTTP_CODE:"&http.readyState&"        SHTTP_CODE:"&http.status  End ifEnd Function





0 0
原创粉丝点击