WebTcp

  • Heyo liebe Community :)
    Ich habe mich mal daran gemacht ne UDF für Tcp im Http-Bereich zu programmieren :)
    Sie soll später alle funktionen unterstützten, die auch ein normaler Browser unterstützt (auch HTTPS)... Bis es allerdings soweit ist, wird wohl noch eine gewisse Zeit vergehen und bis dahin, müsst ihr euch erstmal mit den jetztigen Funktionen begnügen ;)


    Der DebugMode ist in der aktuellen Version standardmäßig aktiviert, denn die UDF ist noch nicht bugfrei. Ich bitte euch sobald es Fehler gibt einfach die Console zu posten^^ Auch in der jetztigen Version ist die UDF sehr umfangreich, weshalb ich nicht jede Funktion beschreiben kann... deshalb kommen hier die wichtigsten Funktionen:

    Spoiler anzeigen
    [autoit]

    ;Die beiden Funktionen müssen vor dem Benutzten des Objektes benutzt werden
    TCPStartup()
    _AutoItObject_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    ;Diese Funktion sollte nachdem ihr mit dem Objekt fertig seit benutzt werden
    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    ;Hiermit erstellt ihr ein Objekt
    $oWebTcp = _WebTcp_Create()

    [/autoit] [autoit][/autoit] [autoit]

    ;Damit besucht man eine Seite; die Funktion gibt euch auch den Body der besuchten Seite zurück
    $oWebTcp.Navigate("http://www.autoit.de/")

    [/autoit] [autoit][/autoit] [autoit]

    ;Ihr kommt aber auch so an den letzten Body
    $oWebTcp.Body

    [/autoit] [autoit][/autoit] [autoit]

    ;So an den Header
    $oWebTcp.Header.Content

    [/autoit] [autoit][/autoit] [autoit]

    ;Wenn ihr die Cookies als String haben wollt, dann so
    $oWebTcp.Cookies.toString

    [/autoit] [autoit][/autoit] [autoit]

    ;Cookies hinzufügen/auslesen/löschen
    $oWebTcp.Cookies.set("Key", "Value")
    $oWebTcp.Cookies.Get("Key")
    $oWebTcp.Cookies.Remove("Key")

    [/autoit]

    Feedback erwünscht :)

    • V.: 0.2

      • Bugfix: Host wird richtig aufgelößt
    • V.: 0.3

      • Komplett Objektorientiert
      • DebugMode
      • Proxyfunktion
    • V.: 0.31

      • Recv-Funktion überarbeitet
    • V.: 0.32

      • Recv-Funktion überarbeitet (Binary-Bugfix)
      • Download-Examplehinzugefügt
      • Updatecheck hinzugefügt
    • V.: 0.33

      • Recv-Funktion überarbeitet (TooShort HexBody-Fix)
      • Paar Debugzeilen hinzugefügt
    • V.: 0.34

      • gZip wird unterstützt
      • IP:Port - Host wird unterstützt
      • Einen weiteren Recv-Bug behoben
      • Server-TimeOut hinzugefügt


    autoit.de/wcf/attachment/10597/

    Mfg AMrK

  • Sieht toll aus. SSL wird nicht ganz so einfach, da musst du auf jeden Fall WinSSL oder OpenSSL verwenden.

  • Ich hätte noch eine Idee für die POST-Übermittlung. Wie wäre es, wenn man beim Öffnen der Verbindung die Größe der zu sendenden Daten angibt und anschließend über weitere Funktionsaufrufe diese Datenmenge zu senden? Bei größeren Mengen finde ich das besser, da sonst einiges an Arbeitsspeicher verbarucht wird (z.B. beim hochladen von Dateien)
    Auch beim Download wäre das ein praktische Option, um große Dateien herunterzuladen.