Inet1.OpenURL() -> Typen unverträglich (Type mismatch)

  • VB6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Inet1.OpenURL() -> Typen unverträglich (Type mismatch)

    Ich benutze das Microsoft Internet Transfer Control in meinem Programm. In manchen (seltenen) Fällen erhalte ich bei der OpenURL-Methode einen Laufzeitfehler, und zwar "Typen unverträglich" (bzw. "Type mismatch"), Code 13. Ich habe keine Ahnung, was an den fehlerhaften URLs anders ist. Bei 10 URLs funktioniert es einwandfrei und bei einer geht es garnicht.

    Ich benutze z.B. folgenden Code:

    Visual Basic-Quellcode

    1. users = netBackup.OpenURL(furl & "&action=memberlist&search=&searchmode=ignore&sort=id&limit=" & CStr(LoadUsers) & "&skip=" & CStr(UserSkipValue) & "&desc=0", icString)


    Hat jemand eine Idee, wie man diesen Fehler umgehen kann?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    mach als erstes mal

    Quellcode

    1. furl = furl & "&action=memberlist&search=&searchmode=ignore&sort=id&limit=" & CStr(LoadUsers) & "&skip=" & CStr(UserSkipValue) & "&desc=0"
    2. users = netBackup.OpenURL (furl, icString)


    Und überprüfe, ob icString auch sicher den Richtigen Typen hat...
    Es ist immer das selbe. Ich komme bei einem Problem überhaupt nicht weiter und entschließe mich dann, in ein Forum zu posten. Kurz darauf finde ich selbst die Lösung. So auch diesmal.

    Erstmal habe ich gelesen, dass dieser Fehler hier und da (websiteabhängig) bei dem Inet-Control auftreten kann. Ist quasi ein Bug des Controls (auch im SP6 noch).

    Dann habe ich folgendes gemacht:

    Website als Byte-Array geholt (funktioniert immer, egal was das Ziel der URL ist) und dann diesen Byte-Array in einen String umgewandelt, und zwar mit folgender Funktion:

    Visual Basic-Quellcode

    1. Public Function ByteArrayToStr(b() As Byte) As String
    2. ' Wandelt ein Byte-Array in einen String um
    3. ByteArrayToStr = Replace$(StrConv(b, vbUnicode), vbNullChar, vbNullString)
    4. End Function


    Edit: Als Byte-Array holen funktioniert so (falls es jemanden interessiert):

    Visual Basic-Quellcode

    1. dim b() as byte
    2. b()=inet1.openurl(strurl, icbytearray)
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()