Fehler "skippen" (ObjCreate)

  • Hallo.

    Ich möchte einen simplen HTTP-Request rausschicken.

    Problem ist aber, dass es bei Fehlern das Script sofort beendet.

    ( Bspw. wenn der WebServer nicht läuft, der zufällig auch in einem AutoIt3 Script gelöst wurde. )

    Code
    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET", "http://127.0.0.1:1234/test", False)
    $oHTTP.Send()
    Code
    >"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "Z:\test.au3"
    "Z:\test.au3" (5) : ==> The requested action with this object has failed.:
    $oHTTP.Send()
    $oHTTP^ ERROR
    >Exit code: 1    Time: 1.3

    Weiß jemand zufällig, wie ich diesen Fehler dann überspringen könnte?

    Ich habe schon nach "on error resume next" und ähnl. für Autoit3 gesucht, bin dabei aber immer wieder nur bei VBS gelandet.

    Und an @error komme ich gar nicht erst :(

  • Dafür brauchst Du einen sog. COM error handler. Siehe in der Hilfe unter ObjEvent.
    Eine andere Empfehlung ist die Verwendung der WinHTTP UDF von trancexx: /https://www.autoitscript.com/forum/topic/84…http-functions/
    Da ist die Fehlerbehandlung schon eingebaut.

  • Ja, wie water schon gesagt hat, nimm die UDF. Da werden die HTTP-Requests direkt mit DLL-Aufrufen abgefragt und es braucht kein COM-Objekt. Fehlerbehandlung ist da auch schon mit eingebaut. ;)