Post daten senden

  • Html

    PHP
    <form action=/goform/gscan method=POST name="gscan">
    <input type="text" name="CmStartDownstreamFrequency" size=20 maxlength=9 value=>
    <input type="submit" value="Click here to restart your cable modem">
    </form>
    [autoit]

    $objHTTP = objCreate( "Microsoft.XMLHTTP" )
    $objHTTP.open ("POST", "http://192.168.100.1/goform/gscan", true )
    $objHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    $objHTTP.send ('CmStartDownstreamFrequency=0')

    [/autoit]


    Autoit Error
    : ==> The requested action with this object has failed.:
    $objHTTP.send ('CmStartDownstreamFrequency=0')
    $objHTTP.send ('CmStartDownstreamFrequency=0')^ ERROR

    EDIT: vergesssen es läuft durch und sendet auch nur der ERROR nerft

    Ich weis ich könnt Curl nutzen möcht ich aber nicht!!!
    INETv2.au3 macht auch nicht das was es soll.

    er hat ein idee?

    2 Mal editiert, zuletzt von Maniac (28. Dezember 2009 um 09:01)

  • _IEFormElementGetObjByName() das geht, problem ist das es soll im HG laufen also nix mit Fenster aufmachen ect.

    mit curl geht alles nur will ich das nicht mit drin haben!

    [autoit]

    Run('curl -d "CmStartDownstreamFrequency=" http://192.168.100.1/goform/gscan')

    [/autoit]


    soll das ohne curl auskommen

    Einmal editiert, zuletzt von Maniac (28. Dezember 2009 um 09:02)

    • Offizieller Beitrag

    Die IE-Funktionen müssen nicht in einem sichtbaren Fenster ablaufen. Das geht auch mit versteckten Fenstern.

    abgeändertes Beispiel aus der Hilfe:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    $oIE = _IECreate ("http://www.google.com", 0, 0)
    $oForm = _IEFormGetObjByName ($oIE, "f")
    $oQuery = _IEFormElementGetObjByName ($oForm, "q")
    _IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
    _IEFormSubmit($oForm)
    _IELoadWait($oIE)
    $text = _IEBodyReadText($oIE)
    MsgBox(0,0,$text)

    [/autoit]
  • Das geht wenn der IE eingerichtet ist was er bei mir auf mein pcs nicht der falle ist.
    Auf lapi wenn er eingerichtet ist wunderbar aber auf mein andern pcs erst mal wilde klickerei das muss ja nicht sein.

    von http://www.autoitscript.com/forum/index.php?showtopic=43248
    abgeändert

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_run_debug_mode=Y
    $WinHttpRequestOption_SslErrorIgnoreFlags = 4
    $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
    $sUrl = "http://192.168.100.1/goform/gscan"
    $PostData = "CmStartDownstreamFrequency=0"
    $oHttpRequest = ObjCreate("WinHttp.WinHttpRequest.5.1")
    $oHttpRequest.Option($WinHttpRequestOption_SslErrorIgnoreFlags) = 13056
    $oHttpRequest.Open ("POST", $sUrl, False)
    $oHttpRequest.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded")
    $oHttpRequest.Send ($PostData)
    sleep(1000)
    $oHttpRequest = ""

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

    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description: " & $oMyError.description & @LF)
    SetError(1)
    Return
    EndFunc

    [/autoit]

    Das macht auch was es soll nur dieser ERROR ### COM Error ! Number: 80020009
    geht mir auf die N....

  • so habe das erst mal damit hinbekommen past mir noch nicht ganz. da auch da keine richtig script antort kommt!
    http://www.autoitscript.com/forum/index.php?showtopic=29631&view=findpost&p=319354

    Spoiler anzeigen
    [autoit]


    #include <HTTP.au3>
    $PostData = "CmStartDownstreamFrequency="
    $host = "192.168.100.1"
    $page = "/goform/gscan"
    $vars = "CmStartDownstreamFrequency="
    $vars = _HTTPEncodeString($vars)

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

    ConsoleWrite(@CRLF&@CRLF&"Example POST Request:"&@CRLF)
    $socket = _HTTPConnect($host)
    ConsoleWrite("Socket Created: "&$socket&@CRLF)
    $get = _HTTPPost($host, $page, $socket, $vars)
    ConsoleWrite("Bytes sent: "&$get&@CRLF)

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

    $recv = _HTTPRead($socket,1)
    If @error Then
    ConsoleWrite("_HTTPRead Error: "&@error&@CRLF)
    ConsoleWrite("_HTTPRead Return Value: "&$recv &@CRLF)
    Else
    ConsoleWrite("HTTP Return Code: "&$recv[0]&@CRLF)
    ConsoleWrite("HTTP Return Response: "&$recv[1]&@CRLF)
    ConsoleWrite("Number of headers: "&UBound($recv[3])&@CRLF)
    ConsoleWrite("Size of data downloaded: "&StringLen($recv[4])&" bytes"&@CRLF)
    ConsoleWrite("Page downloaded: "&@CRLF&$recv[4]&@CRLF)
    EndIf
    _HTTPClose($socket)

    [/autoit]

    vielleicht hat wer ja ne ander Lösung da ja im groben alle Varianten gehen nur das bei allen ein Error kommt in meinen fall!