public Sub getDataFromWWW(ByVal strURL As String, ByVal mode As Boolean, Optional ByVal method As String, Optional ByVal strPostData)
On Error GoTo getDataFromWWW_Err
Const DNSResolveTime = 10 'DNS解释时间,超时10秒
Const WinsockConnectTime = 10 'Winsock连接时间,超时10秒
Const SentTime = 10 '发送时间,超时10秒
Const ReceiveTime = 30 ',接收时间,超时30秒
Dim xmlObj As String 'xml目标
Dim xmlHttp '
Dim result As String '返回结果
102 xmlObj = "MSXML2.ServerXMLHTTP" '取得xml的串
103 ShowMessageBox "getDataFromWWW", 0, "Perepare Send Request to MyWEB TO USE:" & xmlObj
'Set xmlHttp = Server.CreateObject(xmlObj) '原来的版本
104 Set xmlHttp = CreateObject(xmlObj) '创建http对象
106 xmlHttp.SetTimeOuts DNSResolveTime * 1000, WinsockConnectTime * 1000, SentTime * 1000, ReceiveTime * 1000 'DNS解释时间, Winsock连接时间,发送时间,接收时间。(单位毫秒)
'xmlHttp.Open "POST", strURL, False ' POST 可改为get
108 xmlHttp.Open method, strURL & "?" & strPostData, mode ' 取值
xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '"Content-Type: application/x-www-form-urlencoded" & vbCrLf
110 ShowMessageBox "getDataFromWWW", 0, "Send Request to MyWEB Server :" & strURL & "?" & strPostData,
112 xmlHttp.send
114 If xmlHttp.ReadyState = 4 Then '已返回
116 If xmlHttp.Status = 200 Then '成功
'result = xmlHttp.responsebody '取得结果
118 result = xmlHttp.responseText
RaiseEvent DataArrival(reqSrcObj, result)
120 ShowMessageBox "getDataFromWWW", 0, "MyWEB Server Response Succeed: " & result
Else '页面不存在
result = "" '返回为空串
122 RaiseEvent BrowserError(xmlHttp.Status, "MyWEB Server Response Failure,No data Return.")
124 ShowMessageBox "getDataFromWWW", 0, "MyWEB Server Response Failed,resul is NULL. "
End If
Else
result = ""
126 RaiseEvent BrowserError(xmlHttp.ReadyState, "xmlHttp.ReadyState isn't 4 or data does not ready.")
128 ShowMessageBox "getFromURL", 0, "MyWEB Server Response Time OUT,resul is NULL "
Set xmlHttp = Nothing
Exit SubgetDataFromWWW_Err:
RaiseEvent BrowserError(Err.number, Erl & " line ERROR," & Err.Description)
130 ShowMessageBox "getDataFromWWW", Err.number, Erl & " line ERROR," & Err.Description
End SUB
-------------------------------------------------
问题是:124,128在网络断掉时没有执行。请问如何解决?
On Error GoTo getDataFromWWW_Err
Const DNSResolveTime = 10 'DNS解释时间,超时10秒
Const WinsockConnectTime = 10 'Winsock连接时间,超时10秒
Const SentTime = 10 '发送时间,超时10秒
Const ReceiveTime = 30 ',接收时间,超时30秒
Dim xmlObj As String 'xml目标
Dim xmlHttp '
Dim result As String '返回结果
102 xmlObj = "MSXML2.ServerXMLHTTP" '取得xml的串
103 ShowMessageBox "getDataFromWWW", 0, "Perepare Send Request to MyWEB TO USE:" & xmlObj
'Set xmlHttp = Server.CreateObject(xmlObj) '原来的版本
104 Set xmlHttp = CreateObject(xmlObj) '创建http对象
106 xmlHttp.SetTimeOuts DNSResolveTime * 1000, WinsockConnectTime * 1000, SentTime * 1000, ReceiveTime * 1000 'DNS解释时间, Winsock连接时间,发送时间,接收时间。(单位毫秒)
'xmlHttp.Open "POST", strURL, False ' POST 可改为get
108 xmlHttp.Open method, strURL & "?" & strPostData, mode ' 取值
xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '"Content-Type: application/x-www-form-urlencoded" & vbCrLf
110 ShowMessageBox "getDataFromWWW", 0, "Send Request to MyWEB Server :" & strURL & "?" & strPostData,
112 xmlHttp.send
114 If xmlHttp.ReadyState = 4 Then '已返回
116 If xmlHttp.Status = 200 Then '成功
'result = xmlHttp.responsebody '取得结果
118 result = xmlHttp.responseText
RaiseEvent DataArrival(reqSrcObj, result)
120 ShowMessageBox "getDataFromWWW", 0, "MyWEB Server Response Succeed: " & result
Else '页面不存在
result = "" '返回为空串
122 RaiseEvent BrowserError(xmlHttp.Status, "MyWEB Server Response Failure,No data Return.")
124 ShowMessageBox "getDataFromWWW", 0, "MyWEB Server Response Failed,resul is NULL. "
End If
Else
result = ""
126 RaiseEvent BrowserError(xmlHttp.ReadyState, "xmlHttp.ReadyState isn't 4 or data does not ready.")
128 ShowMessageBox "getFromURL", 0, "MyWEB Server Response Time OUT,resul is NULL "
Set xmlHttp = Nothing
Exit SubgetDataFromWWW_Err:
RaiseEvent BrowserError(Err.number, Erl & " line ERROR," & Err.Description)
130 ShowMessageBox "getDataFromWWW", Err.number, Erl & " line ERROR," & Err.Description
End SUB
-------------------------------------------------
问题是:124,128在网络断掉时没有执行。请问如何解决?
解决方案 »
- 这么调用存储过程规范吗
- 编程计算X^0+X^1+X^2+...+X^n的子过程和函数,并分别调用。
- 如何写代码 要求一个按钮单击 打开某个以EXE结尾的程序文件
- 请问大家vb做好了安装程序的exe还可以修改里面的按扭及图片什么的吗?。。。在线等~~~
- 请问那里有active report 的中文的制作方法方面的书???急盼
- 求教:谁有支票打印的源码,可否给我一份。我参考一下。谢谢。
- 华表控件
- Private conn As New ADODB.Connection
- 请教各位大虾!~回答有分!~
- 请问在VB中怎样用API方法去掉窗口标题栏?
- 鼠标移动过大 急求帮助
- 请教 VB 自动调整控件位置但不改变控件大小的代码的问题
103 ShowMessageBox "getDataFromWWW", 0, "Perepare Send Request to MyWEB TO USE:" & xmlObj
'Set xmlHttp = Server.CreateObject(xmlObj) '原来的版本
104 Set xmlHttp = CreateObject(xmlObj) '创建http对象 直接创建MSXML2 http的对象来取得数据.已经设置了超时的时间,但是如果网断掉了,就一直都不会有回应任何的信息.这很奇怪了.