In diesem Artikel wird eine Modulmethode von Visual Basic 6.0 beschrieben, die XMLHTTP zum Implementieren der Post- und Get-Funktionen verwendet. Obwohl es sich um einen alten Code handelt, kann er das Inet-Steuerelement ersetzen, um die Datenkommunikation zu erreichen. Es lohnt sich, daraus zu lernen.
Der Hauptmodulcode lautet wie folgt:
'============================================== ========='|. Modulname |. XMLHTTP'| Ersetzen Sie das Inet-Steuerelement, um die Datenkommunikation zu erreichen === ==================================Öffentliche Enum DataEnum ResponseText = 1 ResponseBody = 2End Enum Öffentliche Funktion GetData(ByVal URL As String, ByVal DataStic As DataEnum) Als Variante bei Fehler GoTo ERR: Dim XMLHTTP As Object Dim DataS As String Dim DataB() As Byte Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") XMLHTTP.Open "get", Url, True XMLHTTP .send While XMLHTTP.ReadyState <> 4 DoEvents Wend '-------------------------------------- ------- Funktion gibt Select Case DataStic Case ResponseText zurück '-------------------------------- Geben Sie die Zeichenfolge direkt zurück DataS = XMLHTTP.ResponseText GetData = DataS Case ResponseBody '-- ------------------------------ Binär direkt zurückgeben DataB = XMLHTTP.ResponseBody GetData = DataB Case ResponseBody + ResponseText '--- - -------------------------- Konvertierung von Binärdatei in Zeichenfolge [versuchen Sie es, wenn die direkt zurückgegebene Zeichenfolge verstümmelt ist] DataS = BytesToStr(XMLHTTP.ResponseBody) GetData = DataS Case Else '--------------------------------Ungültige Rückgabe von GetData = "" Ende Wählen Sie '-------------------------Speicherplatz freigeben Set XMLHTTP = Nothing Exit FunctionERR: GetData = ""End Function Public Function PostData(ByVal StrUrl As String, ByVal StrData As String, ByVal DataStic As DataEnum) As Variant On Error GoTo ERR: Dim XMLHTTP As Object Dim DataS As String Dim DataB() As Bytesatz XMLHTTP = CreateObject("Microsoft.XMLHTTP") XMLHTTP.Open „POST“, StrUrl, True XMLHTTP.setRequestHeader „Content-Length“, Len(PostData) XMLHTTP.setRequestHeader „CONTENT-TYPE“, „application/x-www-form-urlencoded“ XMLHTTP.send (StrData) Do Bis XMLHTTP.ReadyState = 4 DoEvents-Schleife '--------------------------------Funktion gibt Select Case DataStic Case ResponseText zurück '-------------- Geben Sie die Zeichenfolge direkt zurück DataS = XMLHTTP.ResponseText PostData = DataS Case ResponseBody '-- --- --------------------------- Binär direkt zurückgeben DataB = XMLHTTP.ResponseBody PostData = DataB Case ResponseBody + ResponseText '---- -- --------------------- Binär-zu-String-Konvertierung [versuchen Sie es, wenn der direkt zurückgegebene String verstümmelt ist] DataS = BytesToStr(XMLHTTP.ResponseBody) PostData = DataS Case Else '- ----------------Ungültige Rückgabe-PostData = "" End Select '------------------------------------Speicherplatz freigeben Set XMLHTTP = Nothing Exit FunctionERR : PostData = ""End Function Function BytesToStr(ByVal vIn) As String strReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn, i, 1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn, i + 1, 1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next BytesToStr = strReturnEnd Funktion