1. 如何使用
Dim internet As New RemoteHTML()
Dim html As String
html = internet.GetHTTP("http://www.texasswede.com/deepsouth.command")
2.创建RemoteHTML类
Option Public Option Declare Class RemoteHTML Private httpObject As Variant Public httpStatus As Integer Public Sub New() Set httpObject = CreateObject("MSXML2.ServerXMLHTTP") End Sub Public Function GetHTTP(httpURL As String) As String Dim retries As Integer retries = 0 Do If retries>1 Then Sleep 1 ' After the two first calls, introduce a 1 second delay betwen each additional call End If retries = retries + 1 Call httpObject.open("GET", httpURL, False) Call httpObject.send() httpStatus = httpObject.Status If retries >= 10 Then httpStatus = 0 ' Timeout End If Loop Until httpStatus = 200 Or httpStatus > 500 Or httpStatus = 404 Or httpStatus = 0 If httpStatus = 200 Then GetHTTP = Left$(httpObject.responseText,16000) Else GetHTTP = "" End If End Function Public Function GetFile(httpURL As String, filename As String) As Boolean Dim session As New NotesSession Dim retries As Integer Dim stream As NotesStream Dim flag As Boolean Dim responsebody As variant Dim cnt As Long Dim buffer As String Dim tmp As Byte Set stream = session.CreateStream retries = 0 Do If retries>1 Then Sleep 1 ' After the two first calls, introduce a 1 second delay betwen each additional call End If retries = retries + 1 Call httpObject.open("GET", httpURL, False) Call httpObject.send() httpStatus = httpObject.Status If retries >= 10 Then httpStatus = 0 ' Timeout End If Loop Until httpStatus = 200 Or httpStatus > 500 Or httpStatus = 404 Or httpStatus = 0 If httpStatus = 200 Then flag = stream.Open(filename, "binary") If flag = False Then MsgBox "Failed to create " & filename & "..." GetFile = False Exit function End If responsebody = httpObject.ResponseBody ForAll r in responsebody tmp = r Call Stream.Write(Chr$(CInt(tmp))) cnt = cnt + 1 End ForAll MsgBox cnt GetFile = True Else GetFile = False End If End Function Private Function getString(ByVal StringBin As string) Dim intCount As Long getString ="" For intCount = 1 To LenB(StringBin) getString = getString & Chr( Asc(MidB(StringBin, intCount, 1)) ) Next End Function End Class
这样在Domino中Agent也可以用到异步了。B/S就不用这么麻烦,直接用Javascript或JQuery即可。
浙公网安备 33010602011771号