C libcurl标头 - 服务器未识别
C++ libcurl headers - not recognised by server
我正在用libcurl在C 工作,编写一个程序来与某些API进行交互,而在标题中添加身份验证信息时,我一直困扰着。我是Libcurl和API的新手,具有C 的基本知识。身份验证需要一个API键和HMAC_SHA256的NONCE,然后将其放置在标题中。然后发送一个非常简单的JSON消息。我已经尝试在此站点上进行搜索,但是大多数示例似乎都在JavaScript或命令行中,但我在其中没有任何相关答案。
当我将发布消息发送到服务器时,我会得到响应402-无效的apikey。我的API键是100%正确的,因此我怀疑这与格式或将其包含在标题中的方式有关。该网站是闪烁的,他们的文档在这里,其中提供了一些有关标题要求的信息。
代码段:
char* message="{"MsgType": "U2","BalanceReqID": 1}";
curl_easy_setopt(curl, CURLOPT_URL, "https://api.blinktrade.com/tapi/v1/message");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, pFile2);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, message);
struct curl_slist *header = NULL;
header = curl_slist_append(header, "APIKey:0000000000000000000000000000000000000000");
header = curl_slist_append(header, "Nonce:1");
header = curl_slist_append(header, "Signature:1");
header = curl_slist_append(header, "Content-Type:application/json");
transfer = curl_easy_setopt(curl, CURLOPT_HTTPHEADER, header);
cout << transfer << endl;
transfer = curl_easy_perform(curl);
cout << transfer << endl;
我获得了curl_easy_setopt和curl_easy_perform的返回代码0。我已将API键的实际字符交换为0,但是在格式化等方面,所有内容都是相同的。错误。我尝试在结肠后添加一个空间,并以双引号封闭字符串和/或值,但是我得到了相同的响应。我做错了什么,这意味着我的标题实际上并未被服务器识别吗?
已解决:当您的API键不正确时,闪烁的服务器返回"无效的Apikey",而是签名不正确时。一个相当烦人的错误标签。
相关文章:
- 提升 ASIO 无法识别计时器对象
- 从udp接收帧对于人脸识别来说太慢
- 模板类无法识别友元运算符
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- std::visit无法识别类型
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 无法识别模板功能
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 我正在开发服务器,ip作为参数传递不起作用
- 如何在LLVM中dyn_cast以识别StoreInst?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- C libcurl标头 - 服务器未识别
- C++服务器无法识别 AS3 套接字
- 使服务器集群能够识别不同集群上的用户
- 如何从服务器中的客户机池中识别客户机-设计