我正在尝试从C ++程序发出POST请求,该程序将在数据库中插入/更新条目。
我目前正在使用 libcurl ,但我被迫strcat()POST参数并将整数转换为char数组:
//first parameter: name=user.name
char str[] = "name=";
strcat(str, user.name);
//converting int to char array: &number=user.number
strcat(str, "&number=");
uint16_t number_int = user.number;
stringstream number_str;
number_str << number_int;
string number_temp = number_str.str();
char *number_char = (char*) number_temp.c_str();
strcat(str, number_char);
//the whole thing: "name=user.name&number=user.number"
char *data = str;
char addr[] = "192.168.1.26:5000/api/v0.1/users";
char *address = addr;
auto curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, address);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
CURLcode res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl = NULL;
}
我不知道我是否正确使用了这个库,但这是我找到的最佳方式。
我只是想这样做:
curl -X POST 192.168.1.26:5000/api/v0.1/users --data 'name=someName&number=someNumber'
其中&#39; someName&#39;和&#39; someNumber&#39;是变量。
编辑:有没有更好的方法使用C ++使用不同的参数执行POST请求(避免将int转换为char数组和连接)?