libcurl http post 向服务器发送数据
libcurl http post send data to server
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");
当我 运行 上面这行时它给我错误
我怎样才能传递这个 pulsedata 和 tempdata ??
你不能像那样在字符串中使用变量,你必须格式化字符串。
一个可能的 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 调用全部完成之前处于活动状态。
另请注意,我构造的查询字符串不包含任何空格。
一个可能的 C 解决方案:
char sendbuffer[100];
snprintf(sendbuffer, sizeof(sendbuffer), "pulse=%d&temp=%d", pulsedate, tempdata);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, sendbuffer);
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");
当我 运行 上面这行时它给我错误 我怎样才能传递这个 pulsedata 和 tempdata ??
你不能像那样在字符串中使用变量,你必须格式化字符串。
一个可能的 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 调用全部完成之前处于活动状态。
另请注意,我构造的查询字符串不包含任何空格。
一个可能的 C 解决方案:
char sendbuffer[100];
snprintf(sendbuffer, sizeof(sendbuffer), "pulse=%d&temp=%d", pulsedate, tempdata);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, sendbuffer);