Ich habe eine Anwendung, die Daten über HTTP-POST-Anfragen empfängt. Ich versuche, libcurl zu verwenden, um eine Anfrage an diese App zu öffnen, die Daten zu senden und die Antwort von der App zurückzuerhalten. Dies ist der Code, den ich bisher habe:
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl)
{
const int timeout = 30000;
char outputmessage[]="VGhpcyBpcyBqdXN0IGEgbWVzc2FnZSwgaXQncyBub3QgdGhlIHJlYWwgdGhpbmc=";
curl_easy_setopt(curl, CURLOPT_URL, "https://somehost.com/someapp");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.5");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, outputmessage);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(outputmessage));
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout/1000);
res = curl_easy_perform(curl);
if(CURLE_OK != res)
{
printf("Fehler: %s\n", strerror(res));
return 1;
}
// und jetzt?
// Bereinigung, wenn fertig
curl_easy_cleanup(curl);
}
return 0;
}
Dies verbindet im Wesentlichen mit dem Server, ich bekomme ein OK beim curl_easy_perform()
. Ich sehe die Verbindung in Wireshark.
Zwei Fragen:
1) Ist dies der richtige Weg, um Daten über einen POST zu senden, und
2) Wie erhalte ich die Antwort von der Anwendung.
Ich dachte, ich müsse curl_easy_recv()
verwenden, aber ich sehe nicht, wie. Jeder Beispielcode ist willkommen. Danke.