从C ++发送POST请求到REST服务器

时间:2016-03-02 09:59:22

标签: c++ rest http post libcurl

我正在尝试从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数组和连接)?

0 个答案:

没有答案