|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
谁有能用的post库啊
功能 post(weburl,send,Case,Type,cookie="",header="",referer="",proxy="",proxyName="",proxyPassword="")
变量 arrTemp=数组("","",""),http
http=插件("Msxml2.XMLHTTP.6.0")
http.Open(Type,weburl, 假)
http.setRequestHeader("If-Modified-Since", "0")
http.setRequestHeader("Cache-Control","no-cache")
http.setRequestHeader("Accept","*/*")
http.setRequestHeader("Connection","Keep-Alive")
http.setRequestHeader("Accept-Language","zh-CN")
http.setRequestHeader("Content-Length",字符串长度(send))
http.setRequestHeader("UserAgent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E")
traceprint( 字符串长度(send))
如果(Type=="post")
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
结束
如果(cookie!="")
http.setRequestHeader("Cookie",cookie)
结束
如果(proxy!="")
http.setProxy(2,proxy,"")
结束
如果(proxyName!=""||proxyPassword!="")
http.setProxyCredentials(proxyName,proxyPassword)
结束
http.send(send)
循环(http.ReadyState != 4)
等待(200)
结束
header=http.getAllResp**eHeaders()
变量 header2=http.getResp**eHeader("cookie")
cookie=getCookie(header)
traceprint("header:"&header)
// traceprint("header2:"&header2)
// traceprint("cookie:"&cookie)
变量 ret=BytesToBstr(http.Resp**eBody,Case)
http=null
arrTemp[0]=ret
arrTemp[1]=header
arrTemp[2]=cookie
返回 arrTemp
结束
//不包含域信息
功能 getCookie(header)
变量 theader
变量 cookie
变量 retArray
// traceprint(header)
字符串分割(header,"\r\n",theader)
变量 count=数组大小(theader)
遍历(变量 i=0;i<count;i++)
变量 regextext="Set-Cookie: (.+?)=([^;]+)?"
变量 xx=字符串截取(theader[i],0,11)
如果(xx=="Set-Cookie:")
retArray=正则子表达式匹配(regextext,theader[i])
cookie=cookie&retArray[0]&"="&retArray[1]&";"
结束
结束
cookie=字符串替换(cookie,";;",";")
返回 cookie
结束
//包含域信息
功能 getCookieEx(header)
变量 theader
变量 cookie
字符串分割(header,"\r\n",theader)
变量 count
count=数组大小(theader)
遍历(变量 i=0;i<count;i++)
变量 xx=字符串截取(theader[i],0,11)
如果(xx=="Set-Cookie:")
cookie=cookie&字符串截取(theader[i],11,字符串长度(theader[i]))&";"
结束
结束
cookie=字符串替换(cookie,";;",";")
返回 cookie
结束
功能 addDomain(cookie,domain)
变量 pos=字符串查找字符(cookie,";")
变量 t=字符串截取(cookie,0,pos+1)
变量 end1=字符串截取(cookie,pos+1,字符串长度(cookie))
变量 ret=t&"domain="&domain&";"&end1
返回 ret
结束
//设置IECookie
功能 setIECookie(weburl,cookie)
变量 系统常量
变量 ret=dllcall("wininet.dll","bool","InternetSetCookieExA","char*",weburl,"char *","qq","char *","0350910378","int",系统常量.INTERNET_COOKIE_THIRD_**,"int",0)
变量 tt
字符串分割(cookie,";",tt)
变量 count
count=数组大小(tt)
遍历(变量 i=0;i<(count-1);i++)
变量 tt1
字符串分割(字符串修剪(tt[i]),"=",tt1)
如果(tt1[0]!="HttpOnly")
ret=dllcall("wininet.dll","BOOL","InternetSetCookieA","char *",weburl,"char *",tt1[0],"char *",tt1[1])
否则
ret=dllcall("wininet.dll","BOOL","InternetSetCookieA","char *",weburl,"char *",tt1[0],"char *","")
结束
结束
结束
//获取网页打开的时间
//参数1:网页地址
//参数2:超时时间
功能 getHtmlGetticktime(weburl,time)
变量 http,t
http=插件("Msxml2.XMLHTTP")
t=获取系统时间()
http.Open("get", weburl, 假)
http.setRequestHeader("If-Modified-Since", "0")
http.send("")
如果(http.status == 200)
http=null
返回 获取系统时间() - t
结束
循环(http.status != 200)
如果(获取系统时间()- t>time)
http=null
返回 获取系统时间() - t
结束
结束
结束
//把二进制流转码
功能 BytesToBstr(body,Cset)
// "UTF-8"
变量 objstream =插件("Adodb.Stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write(body)
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
变量 str = objstream.ReadText
objstream.Close
objstream=null
traceprint(str)
返回 str
结束
//GB2312
//要用GB2312方式编码的字符串
功能 encodeGB2312(body,Cset)
// "UTF-8"
变量 objstream =插件("Adodb.Stream")
objstream.Type = 0
objstream.Mode =2
objstream.Open
objstream.Write(body)
objstream.Position = 0
objstream.Type = 1
objstream.Charset = Cset
变量 str = objstream.ReadText
objstream.Close
objstream=null
返回 str
结束
//encodeURI
//要用encodeURI方式编码的字符串
功能 encodeURI(str)
变量 ScriptContorl=插件("MSScriptControl.ScriptControl")
ScriptContorl.AllowUI = 真
ScriptContorl.Language = "JavaScript"//"JavaScript"
ScriptContorl.AddCode("function add(s1){return encodeURI(s1);}")
变量 ret=ScriptContorl.Run("add",str)
ScriptContorl=null
返回 ret
结束
//decodeURI
//要用decodeURI解码的字符串
功能 decodeURI(str)
变量 ScriptContorl=插件("MSScriptControl.ScriptControl")
ScriptContorl.AllowUI = 真
ScriptContorl.Language = "JavaScript"//"JavaScript"
ScriptContorl.AddCode("function add(s1){return decodeURI(s1);}")
变量 ret=ScriptContorl.Run("add",str)
ScriptContorl=null
返回 ret
结束
//escape
//要用escape方式转码的字符串
功能 escape(str)
变量 ScriptContorl=插件("MSScriptControl.ScriptControl")
ScriptContorl.AllowUI = 真
ScriptContorl.Language = "JavaScript"//"JavaScript"
ScriptContorl.AddCode("function add(s1){return escape(s1);}")
变量 ret=ScriptContorl.Run("add",str)
ScriptContorl=null
返回 ret
结束
//unescape
//要用unescape解码的字符串
功能 unescape(str)
变量 ScriptContorl=插件("MSScriptControl.ScriptControl")
ScriptContorl.AllowUI = 真
ScriptContorl.Language = "JavaScript"//"JavaScript"
ScriptContorl.AddCode("function add(s1){return unescape(s1);}")
变量 ret=ScriptContorl.Run("add",str)
ScriptContorl=null
返回 ret
结束
//执行js代码
功能 runScriptCode(scriptcode,Script="JavaScript")
变量 ScriptContorl=插件("MSScriptControl.ScriptControl")
ScriptContorl.AllowUI=真
ScriptContorl.Language=Script
变量 ret=ScriptContorl.Eval(scriptcode)
变量 ojb=null
返回 ret
结束
//取两个字符串中间的信息
//参数1:源字符串
//参数2:要取的部分所在开头的字符串
//参数3:结束部分字符,默认为空,表示到到结尾
功能 mid(source,startStr,endStr="")
变量 startpos
变量 endpos
变量 temp
如果(startpos=="")
startpos=0
否则
startpos=字符串查找字符(source,startStr)
结束
temp=字符串截取(source,startpos+字符串长度(startStr),字符串长度(source))
如果(endStr=="")
endpos=字符串长度(temp)
否则
endpos=字符串查找字符(temp,endStr)
结束
如果(startpos==-1 || endpos==-1)
返回 ""
结束
变量 ret=字符串截取(temp,0,endpos)
返回 ret
end
//获取时间戳
功能 getTimeUnix() // TC标准时间格式
变量 北京时间转Unix=指定时间("h",-8,当前时间())
返回 时间间隔("s","1970/1/1 0:0:0",北京时间转Unix)
end
//把网络上的文件下载到本地
//参数1:文件地址
//参数2:文件本地存放的地址
功能 DownLoad(文件地址,保存路径)
变量 http=插件("Microsoft.XMLHTTP")//创建一个com对象
http.Open("get", 文件地址, 假)//以get模式打开文件
http.setRequestHeader("Cache-Control","no-cache")//不使用本地缓存数据,防止每次数据一样
http.send("")
变量 t=获取系统时间()
循环(http.ReadyState != 4)
等待(100)
如果(获取系统时间()-t>5000)
返回 假
结束
结束
变量 body=http.Resp**eBody
http=""
变量 stream=插件("ADODB.Stream")//文件操作的对象
stream.Type=1//这个我也不懂,参数就是这么写的
stream.Open//打开文件流操作
stream.write(body)//把文件流写入内存(猜测的)
stream.saveToFile(保存路径,2)//然后把文件保存成二进制数据的指定文件
stream.Close//关闭文件流操作
stream=""
end
//将十进制数值转换成二进制
//参数1:十进制数值
功能 D2B(Dec)
变量 ret
循环(真)
ret=Dec%2 & ret
Dec=取整(Dec/2)
如果(Dec==0)
break
结束
结束
返回 ret
结束
//将二进制数值转换成十进制
//参数1:二进制字符串
功能 B2D(Byte)
变量 ret
遍历(变量 i=0;i<字符串长度(Byte);i++)
ret = ret * 2 + 转整型(字符串截取(Byte,i,i+1))
结束
返回 ret
end
|
|