Hallo zusammen,
ich hab nun versucht diese Abfrage mit WinHttp nachzubilden.
Aber irgend wie bin ich zu blöd. Die Funktion _WinHttpAddRequestHeaders läuft nicht sauber durch und gibt mir einen Fehler zurück (@error: 1 - DllCall failed) .
Könnt ihr euch die paar Zeile mal ansehen und mir vielleicht verraten, wo ich den Fehler mache?
Spoiler anzeigen
AutoIt
#include <Crypt.au3>
;~ #include <Date.au3>
#include <WinHTTP.au3>
; Poloniex-APi-Adresse: https://poloniex.com/tradingApi
$tZeit = TimerInit ;Startzeit
$key = "2F7CC9ZD-O0LTEC89-EFUNGPZV-9NLGYY9Q"
$secret = "24663e57c05c19f84d2bfc66486f3a723560df3ced9a24a6cc174281cd2b559c7cbf644e02bc894a79ee87d2a4bf743dff1c54feb5702169223003d8b2bc03c8"
$cNonce = Int(TimerDiff($tZeit)) ;enthält den nonce-Wert, muß bei jeder Angfrage erhöht werden
$params = "nonce=" & $cNonce & "&command=returnBalances"
$sign = hmac($params, $secret)
$hSession = _winHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0")
$hConnect = _WinHttpConnect($hSession, "poloniex.com")
ConsoleWrite("$hConnect: " & $hConnect & @CR)
$hRequest = _WinHttpOpenRequest($hConnect, "POST")
ConsoleWrite("$hRequest: " & $hRequest & @CR)
ConsoleWrite("$hRequestERR: " & @error & @CR) ; 0 = i.O
$vReturn = _WinHttpAddRequestHeaders($hRequest,"Key=" & $key )
ConsoleWrite("$vReturn1: " & $vReturn & @CR) ; Erfolg = 1
ConsoleWrite("Headers1: " & @error & @CR) ; sets @error: 1 - DllCall failed
$vReturn =_WinHttpAddRequestHeaders($hRequest,"Sign=" & StringLower(Hex($sign)))
ConsoleWrite("$vReturn2: " & $vReturn & @CR) ; Erfolg = 1
ConsoleWrite("Headers2: " & @error & @CR)
$sHtml = _WinHttpSimpleRequest($hConnect, "Post", "/tradingApi", "", $params)
ConsoleWrite("SimpleRequest: " & $sHtml & @CR)
_WinHTtpCloseHandle($hConnect)
_WinHTtpCloseHandle($hSession)
Func hmac($message, $key, $hash = "SHA512")
Local $blocksize = 128
Local $a_opad[$blocksize], $a_ipad[$blocksize]
Local Const $oconst = 0x5C, $iconst = 0x36
Local $opad = Binary(''), $ipad = Binary('')
$key = Binary($key)
If BinaryLen($key) > $blocksize Then $key = Call($hash, $key)
For $i = 1 To BinaryLen($key)
$a_ipad[$i - 1] = Number(BinaryMid($key, $i, 1))
$a_opad[$i - 1] = Number(BinaryMid($key, $i, 1))
Next
For $i = 0 To $blocksize - 1
$a_opad[$i] = BitXOR($a_opad[$i], $oconst)
$a_ipad[$i] = BitXOR($a_ipad[$i], $iconst)
Next
For $i = 0 To $blocksize - 1
$ipad &= Binary('0x' & Hex($a_ipad[$i], 2))
$opad &= Binary('0x' & Hex($a_opad[$i], 2))
Next
Return Call($hash, $opad & Call($hash, $ipad & Binary($message)))
EndFunc ;==>hmac
Func SHA512($message)
Return _Crypt_HashData($message, 0x0000800e)
EndFunc ;==>SHA512
Alles anzeigen
Für Hilfe wäre ich dankbar ....