-1
curl_easy_setopt(curl, CURLOPT_URL, "127.0.0.1:8081/get.php");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,"pulse=70 & temp=35" );

上面的代码运行成功但是当我通过这个

int pulsedata = 70;
int tempdata  = 35;

curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "pulse=pulsedata & temp = tempdata");

当我在上面运行它时,它给了我错误我怎样才能传递这个脉冲数据和临时数据?

4

2 回答 2

0

您不能在这样的字符串中使用变量,您必须格式化字符串。

一个可能的 C++ 解决方案可能是这样使用std::ostringstream的:

std::ostringstream os;
os << "pulse=" << pulsedata << "&temp=" << tempdata;
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, os.str().c_sr());

使用此解决方案,std::ostringstream对象(os在我的示例中)需要处于活动状态,直到 CURL 调用全部完成。


另请注意,我构造的查询字符串不包含任何空格。

于 2015-08-17T08:24:29.630 回答
0

一个可能的 C 解决方案:

char sendbuffer[100];
snprintf(sendbuffer, sizeof(sendbuffer), "pulse=%d&temp=%d", pulsedate, tempdata);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, sendbuffer);
于 2015-08-17T08:33:34.267 回答