WinHttpSSLSimpleRequest funktioniert nicht

  • Hallo alle zusammen!

    ich komme irgendwie nicht weiter, mein _WinHttpSimpleSSLRequest mit GET funktioniert einwandfrei, nur beim POST hängts:
    (bei erfolgreichem POST müsste beim $sHTML3 folgendes enthalten sein: Das eingegebene Passwort ist ungueltig"

    Spoiler anzeigen
    [autoit]

    #include
    $hSession = _WinHttpOpen()$hConnect = _WinHttpConnect($hSession, "aer10.flightconex.de")$sHTML = _WinHttpSimpleRequest($hConnect, "GET", "/afw/FilekeyLogin.action")$sessionID = StringRegExp($sHTML, "jsessionid\=(.+?).\s", 3)ConsoleWrite("jsessionid ist: "&$sessionID[0]&@CRLF&@CRLF&@CRLF)
    ;~ $sHTML1 = _WinHttpSimpleRequest($hConnect, "GET", "afw/FilekeyLogin.action;jsessionid="&$sessionID)

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

    $sHTML2 = _WinHttpSimpleSSLRequest($hConnect, "GET", "afw/FilekeyLogin.action;jsessionid="&$sessionID[0])$sHTML3 = _WinHttpSimpleSSLRequest($hConnect, "POST", "lang=&locator=2A8D2E&superUserPassword=******PASSWORT******&__fp=2kjgvom952T2jhEArCz%2FCg%3D%3D")

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

    FileDelete(@DesktopDir&"\sclog.html")FileWrite(@DesktopDir&"\sclog.html", $sHTML3)

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

    _WinHttpCloseHandle($hSession)_WinHttpCloseHandle($hConnect)_WinHttpCloseHandle($sHTML)_WinHttpCloseHandle($sHTML3)_WinHttpCloseHandle($sHTML2)

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

    ConsoleWrite(@CRLF&@CRLF&$sHTML3)

    [/autoit]


    Hier ist der Header, das eigentliche Problem, denn in der Zeile mit POST steht was anderes, und was tatsächlich gesendet wird ist was anderes, nämlich die untere zeile mit lang=&locator......usw.... :

    Spoiler anzeigen

    https://aer10.flightconex.de/afw/FilekeyLog…15A6685.sce-115

    POST /afw/FilekeyLogin.action;jsessionid=BC0AEB7C06DACE22B2FE2A19E15A6685.sce-115 HTTP/1.1
    Host: aer10.flightconex.de
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Connection: keep-alive
    Referer: https://aer10.flightconex.de/afw/FilekeyLog…15A6685.sce-115
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 168
    lang=&locator=***TESTFILEKEY***&superUserPassword=*TESTPWD***&server=&search=Suche&_sourcePage=/template/login/login_filekey.ftl&__fp=94wGuCHNmrf2VA8elGoosA==
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5
    P3P: CP="NOI DSP COR NID CUR OUR NOR"
    Content-Encoding: gzip
    Content-Type: text/html;charset=UTF-8
    Content-Language: de
    Content-Length: 3095
    Date: Thu, 29 Dec 2011 13:08:38 GMT

    Einmal editiert, zuletzt von oispnr (29. Dezember 2011 um 15:05)

  • Hm, ohne Testdaten ist es blöd zu testen, ich nehm mal an das geht auch nicht?

    Spoiler anzeigen
    [autoit]

    #include <WinHTTP.au3>

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

    $username="test" ; ändern
    $password="1234" ; ändern

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

    $post=_URIEncode("lang=&principal.username="&$username&"&principal.password="&$password&"&login=Login&_sourcePage=%2Ftemplate%2Flogin%2Flogin.ftl&__fp=UHBGSrW8cGWg9dQ%2FJRUm1Q%3D%3D")

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

    $hw_open = _WinHttpOpen("Client")
    $hw_connect = _WinHttpConnect($hw_open, "aer10.flightconex.de",$INTERNET_DEFAULT_HTTPS_PORT)

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

    $h_openRequest = _WinHttpOpenRequest($hw_connect,"POST", "/afw/Login.action;jsessionid=6186892D1E1B4B21F207C3637729310F.sce-116","HTTP/1.1", _
    $WINHTTP_NO_REFERER, $WINHTTP_DEFAULT_ACCEPT_TYPES, $WINHTTP_FLAG_SECURE)
    _WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, $post)
    _WinHttpReceiveResponse($h_openRequest)

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

    $header = _WinHttpQueryHeaders($h_openRequest)
    MsgBox(0, "Header", $header)
    If _WinHttpQueryDataAvailable($h_openRequest) Then
    Local $data=""
    Do
    $data&=_WinHttpReadData($h_openRequest)
    Until @error<>0
    ;MsgBox(0, "Body", $data)
    FileWrite("test.html",$data)
    EndIf

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

    Func _URIEncode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"")
    Local $nChar
    $sData=""
    For $i = 1 To $aData[0]
    ;~ ConsoleWrite($aData[$i] & @CRLF)
    $nChar = Asc($aData[$i])
    Switch $nChar
    Case 45, 46, 48-57, 65 To 90, 95, 97 To 122, 126
    $sData &= $aData[$i]
    Case 32
    $sData &= "+"
    Case Else
    $sData &= "%" & Hex($nChar,2)
    EndSwitch
    Next
    Return $sData
    EndFunc

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

    _WinHttpCloseHandle($h_openRequest)
    _WinHttpCloseHandle($hw_connect)
    _WinHttpCloseHandle($hw_open)

    [/autoit]

    Der Header vom Paket sieht jedenfalls gut aus.

  • ne funzt leider auch nicht...
    leider darf ich die testdaten nicht preisgeben...
    aber das ist eigentlich auch egal, denn im worst case dürfte nur "Passwort Falsch" oder "Es wurde kein Principal zum Filekey XXX" gefunden kommen
    naja ich probier mal nochn bisschen rum, trotzdem vielen dank für den hilfsversuch :)


    EDIT: Habe es doch hinbekommen ^^ ich musste nur diese zeile vom header mit lang..... in das fünfte $Additional Parameter beim _WinHttpSimpleSSLRequest eintragen, also :

    Spoiler anzeigen
    [autoit]

    $sHTML3 = _WinHttpSimpleSSLRequest($hConnect, "POST", "afw/FilekeyLogin.action;jsessionid="&$sessionID[0],Default, "lang=&locator=2A8D2E&superUserPassword=*TESTPWD***&server=&search=Suche&_sourcePage=%2Ftemplate%2Flogin%2Flogin_filekey.ftl&__fp=94wGuCHNmrf2VA8elGoosA%3D%3D")

    [/autoit]

    nochmals danke GREEK dass du auch im Chat so hilfsbereit warst ^^

    Einmal editiert, zuletzt von oispnr (29. Dezember 2011 um 14:58)