gpt4 book ai didi

C++ Curl 后动态变量

转载 作者:行者123 更新时间:2023-11-28 01:32:41 28 4
gpt4 key购买 nike

我想在 POST curl 中使用动态变量
我使用这段代码:

int send(const char*s)
{
CURL *curl;
CURLcode res;


curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/query.php");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "q=" + s);
res = curl_easy_perform(curl);

if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));

curl_easy_cleanup(curl);
}
curl_global_cleanup();
std::cout << std::endl << "Query sent" << std::endl;
return 0;
}

我得到这个错误:

test.cpp:199:57: error: invalid operands of types ‘const char [3]’ and ‘const char*’ to binary ‘operator+’
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "q=" + s);
~~~~~^~~

最佳答案

必须自己拼接"q="s,Cpp中没有操作符+将chars数组与指针拼接到字符。用"q="创建字符串,将s指向的数据添加到这个字符串中,调用c_str()得到const char* 指针作为 curl_easy_setopt 函数的参数:

#include <string>
....
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/query.php");
std::string buf("q=");
buf += s;
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, buf.c_str());

关于C++ Curl 后动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com