【问题标题】:Poloniex API "Invalid command" c++ libcurlPoloniex API“无效命令”c++ libcurl
【发布时间】:2020-06-24 19:18:30
【问题描述】:

我试图解决它好几个小时,但没有比这更好的了......

int main() {
    CURL *curl_handle = curl_easy_init();
    if(curl_handle) {
     
        string post_data="";
        struct curl_slist *headers=NULL;
        string command = "command=returnBalances&nonce=" + to_string(time(0));
        cout<<command<<endl;
        string Secret = "mySecretCode";
        string Sign = "Sign: "+ hmac::get_hmac(Secret, command, hmac::TypeHash::SHA512);
        cout<<Sign<<endl;
        post_data += command;
        headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
        headers = curl_slist_append(headers, "Key: myKey");
        headers = curl_slist_append(headers, Sign.c_str());
        curl_easy_setopt(curl_handle, CURLOPT_URL, "https://poloniex.com/tradingApi");

        curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDSIZE, post_data.length()+1);
        curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS, post_data.c_str());
        curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, false);
        curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L);

    }
    curl_easy_perform(curl_handle);
    curl_easy_cleanup(curl_handle);
      
    return 0;
}

这还给我

{"error":"Invalid command."}

我检查了 hmac 函数结果抛出的网站,它们是相等的。 有人说加了

"Content-Type: application/x-www-form-urlencoded"

可以解决这个问题,但暂时不行。

控制台输出:

> POST /tradingApi HTTP/2
Host: poloniex.com
accept: */*
content-type: application/x-www-form-urlencoded
key: myKey
sign: resultOfHmacFunc
content-length: 40

【问题讨论】:

  • 好像 post_data 没有发送,因为我向reqbin.com 发出请求,一切正常,但我不知道如何解决

标签: c++ api curl http-post poloniex


【解决方案1】:

解决方案是从 CURLOPT_POSTFIELDS 更改为 CURLOPT_COPYPOSTFIELDS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2016-08-10
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多