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

это выше код успешно работать, но когда я прохожу этотLibcurl HTTP POST отправить данные на сервер

int pulsedata = 70; 
int tempdata = 35; 

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

, когда я запускаю это выше линии она дает мне ошибку , как я могу передать эту pulsedata и TempData? ?

+0

Используйте 'станд :: ostream' для построения URL запроса. –

ответ

0

Возможное решение C:

char sendbuffer[100]; 
snprintf(sendbuffer, sizeof(sendbuffer), "pulse=%d&temp=%d", pulsedate, tempdata); 
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, sendbuffer); 
+0

в базе данных неверное значение введите как pulse = 1553236 –

+0

eclipse дайте мне предупреждение Формат '% d' ожидает соответствующий аргумент 'int' [-Wformat =] –

+0

@ parth9966 В моем ответе был добавлен дополнительный '' '. ответьте, и теперь это правильно. Повторите попытку. –

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 вызовы не все сделано.


Также обратите внимание, что построчная строка запроса не содержит пробелов.

Смежные вопросы