我正在尝试实施 payhip 软件许可证密钥使用 API。
我已经成功发出以下curl命令;
curl https://payhip.com/api/v1/license/usage -d "product_link=MY_PRODUCT" -d "license_key=MY_KEY" -X PUT --header "payhip-api-key: API_KEY_HERE"
然后,我使用 libcurl 库在 c 中编写生产代码,如下所示;
// curl
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "https://payhip.com/api/v1/license/usage");
struct curl_slist *list = NULL;
list = curl_slist_append(list, "API_KEY_HERE");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "product_link=MY_PRODUCT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "license_key=MY_KEY");
CURLcode res = curl_easy_perform(curl);
curl_easy_perform(curl)
返回了0
,但响应是HTTP/2 400
并且响应主体说
{"code":"required_parameters","message":"Missing or empty required parameters","success":false}
如何在
curl_easy_setopt()
中写入collect put参数?
我找到了解决方案如下:
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,"product_link=MY_PRODUCT&license_key=MY_KEY");
// curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "product_link=MY_PRODUCT");
// curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "license_key=MY_KEY");
这个答案对于这个问题也提供了很多信息。