簡體   English   中英

使用 laravel Http 外觀的 poloniex 上出現無效命令錯誤

[英]Invalid command error on poloniex using laravel Http facade

從 curl 實現切換到使用 laravel Http 門面來訪問poloniex私有 Z8A5DA52ED126447D3597E。

但我遇到了問題。 我從 poloniex 收到無效的命令響應,但我的所有參數似乎都可以正常工作。

下面的示例代碼,所有端點都是這種情況,但我們將在此處使用 returnBalances 命令進行測試:

$req = ['command' => 'returnBalances'];

// generate a nonce
$time = explode(' ', microtime());
$req['nonce'] = $time[1].substr($time[0], 2, 6);

$parameters = http_build_query($req, '', '&');

$sign = hash_hmac('sha512', $parameters, $my_secret);

$response = Http::withHeaders(["key" => $my_key, 'Sign' '=> $my_secret])
    ->post('https://poloniex.com/tradingApi', $req);

上述響應 json 返回:

array:1 [
  "error" => "Invalid command."
].

我的代碼工作正常,但直接使用 curl 時,似乎 http 門面沒有發送請求參數

看起來您正在將請求有效負載作為查詢參數發送。

查看文檔,您需要在post()調用之前添加對asForm() ) 的調用。

下面,假設您的代碼的 rest 是正確的,應該是正確的實現:

$response = Http::withHeaders(["key" => $my_key, 'Sign' => $my_secret])
    ->asForm()
    ->post('https://poloniex.com/tradingApi', ['command' => 'returnBalances']);

我相信 Http 客戶端會為您處理 URL 編碼,因此您不需要額外調用http_build_query

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM