WinHttp und SSL

  • Hi,
    ich versuche mich mit WinHTTP auf Minecraft.Net einzuloggen, aber es kommt immer wieder die Antwort 'Bad Login'. Dies würde man eigentlich nur erhalten wenn der Benutzername bzw. das Passwort falsch währ, da das aber nicht der Fall ist, scheint mit dem Code etwas faul zu sein.

    (Um zu testen, bitte $username und $password anpassen)

    Spoiler anzeigen
    [autoit]

    #include <WinHTTP.au3>

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

    $hSession = _WinHttpOpen()
    $hConnect = _WinHttpConnect($hSession, "login.minecraft.net", $INTERNET_DEFAULT_HTTPS_PORT)

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

    $hRequest = _WinHTTPOpenRequest($hConnect, "POST", "", Default, Default, Default, $WINHTTP_FLAG_SECURE)

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

    _WinHttpSetOption($hRequest, $WINHTTP_OPTION_SECURITY_FLAGS, BitOR($SECURITY_FLAG_IGNORE_CERT_CN_INVALID, $SECURITY_FLAG_IGNORE_CERT_DATE_INVALID, $SECURITY_FLAG_IGNORE_UNKNOWN_CA), 4)

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

    $username = ""
    $password = ""

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

    $data = "user=" & $username & "&password=" & $password & "&version=9999"

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

    _WinHttpSendRequest($hRequest, Default, $data, StringLen($data))
    _WinHttpReceiveResponse($hRequest)

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

    $sdata = _WinHttpReadData($hRequest)

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

    ConsoleWrite($sdata & @CRLF)

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

    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hSession)

    [/autoit]

    Wenn alles klappt, würde man sowas erhalten 1510171034080:112ee3130127ad7ac4f6cc8e4851332:Username:-1460550985669465350

    Hier hab ich noch ein Stück Code, was sich einloggen kann:

    Spoiler anzeigen
    [autoit]


    $sUsername=""
    $sPassword=""
    $sVersion="9999"
    $sData = EasyPost("https://login.minecraft.net/", StringFormat("user=%s&password=%s&version=%s", $sUsername, $sPassword, $sVersion))
    ConsoleWrite($sData & @CRLF)

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

    Func EasyPost($sAddr, $sPost)
    Local Static $oWinHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oWinHTTP.Open("POST", $sAddr, False)
    $oWinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
    $oWinHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    $oWinHTTP.Send($sPost)
    Return $oWinHTTP.ResponseText
    EndFunc ;==>EasyPost

    [/autoit]

    Ich hoffe doch das ihr das WinHTTP Skript zum laufen bekommt. :)

    //Edit: Ich habs selber gelöst

    Spoiler anzeigen
    [autoit]

    #include <WinHTTP.au3>

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

    $hSession = _WinHttpOpen()
    $hConnect = _WinHttpConnect($hSession, "login.minecraft.net", $INTERNET_DEFAULT_HTTPS_PORT)

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

    $hRequest = _WinHTTPOpenRequest($hConnect, "POST", "", Default, Default, Default, BitOR($WINHTTP_FLAG_SECURE, $WINHTTP_FLAG_ESCAPE_DISABLE))

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

    $username = ""
    $password = ""

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

    $data = "user=" & $username & "&password=" & $password & "&version=9999"
    $sHeader = "Content-Type: application/x-www-form-urlencoded"

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

    _WinHttpSendRequest($hRequest, $sHeader, $data)
    _WinHttpReceiveResponse($hRequest)

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

    $sdata = _WinHttpReadData($hRequest)

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

    ConsoleWrite($sdata & @CRLF)

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

    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hSession)

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