【发布时间】:2022-01-09 18:37:41
【问题描述】:
我正在开发一个需要许可系统的项目。所以我决定使用我的销售平台 Gumroad 的许可系统。
看起来很简单,唯一的问题是我似乎无法将自定义数据添加到 C++ 中的 cURL 请求中。
这是文档中发布的示例:
curl https://api.gumroad.com/v2/licenses/verify \
-d "product_permalink=QMGY" \
-d "license_key=YOUR_CUSTOMERS_LICENSE_KEY" \
-X POST
这在 Ubuntu 终端上运行良好,但是当我尝试在 C++ 中实现它时,它不起作用。
这是 C++ 代码:
std::stringstream get_response()
{
std::stringstream str;
curl::curl_ios<std::stringstream> writer(str);
curl::curl_easy easy(writer);
easy.add<CURLOPT_URL>("https://api.gumroad.com/v2/licenses/verify");
easy.add<CURLOPT_POSTFIELDS>("product_permalink=QMGY");
easy.add<CURLOPT_POSTFIELDS>("license_key=YOUR_CUSTOMERS_LICENSE_KEY");
try
{
easy.perform();
}
catch (curl::curl_easy_exception error)
{
auto errors = error.get_traceback();
error.print_traceback();
}
return str;
}
它能够从服务器获得响应,但它无法识别许可证密钥。
我认为这是因为CURLOPT_POSTFIELDS 不是替换-d 的正确字段。
有谁知道使用正确的字段吗?
大约有 300 种不同的,我不知道哪一种是正确的。
有人可以指点我正确的方向吗?
【问题讨论】: