试图用curl创建一个带有特定主体的c++PUT请求



我试图重新创建的是这个curl请求。

curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic securePasswordHash' -d '{"IconID": 54}' 'https://127.0.0.1:1233/api/v1/current/icon'

这个命令确实有效。

我正试图把它翻译成C++代码。到目前为止,我的代码如下:

std::string wHeader = ("Authorization: Basic " + wLCUEncoded);
std::string strJson = "{"IconID" : 54}"; 
CURL* curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
headerlist = curl_slist_append(headerlist, "Accept: application/json");
headerlist = curl_slist_append(headerlist, wHeader.c_str());
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, wUrl.c_str());
curl_easy_setopt(curl, CURLOPT_HEADER, true);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, strJson);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}

结果如下:

{"errorCode":"BAD_REQUEST","httpStatus":400,"message":"Unknown argument '{"IconID" : 54}' for 'Icon'."}* Connection #0 to host 127.0.0.1 left intact

我该怎么做有什么建议吗?我试图将strJson转换成一个实际的json对象,但这给出了一个奇怪的字符串错误:

{"errorCode":"BAD_REQUEST","httpStatus":400,"message":"Unknown argument 'u0002╠╠╠╠╠╠╠u0010^Ju000Feu0001' for 'Icon'."}* Connection #0 to host 127.0.0.1 left intact

我的问题的解决方案是包含头。

headerlist = curl_slist_append(headerlist, "Accept: application/json");
headerlist = curl_slist_append(headerlist, "Content-Type: application/json");
headerlist = curl_slist_append(headerlist, "charset: utf-8");

最新更新