私は、HTTP POST要求でデータを受け取ったアプリケーションを持っています。私はlibcurlを使用してこのアプリケーションへのリクエストを開き、データを送信し、アプリケーションから返信を返そうとしています。これは、基本的にサーバーに接続libcurl HTTPS POSTデータが送信されますか?
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("Error: %s\n", strerror(res));
return 1;
}
// now what?
// cleanup when done
curl_easy_cleanup(curl);
}
return 0;
}
、私はcurl_easy_perform()
にOKを得る:これは私がこれまで持っているコードです。私はWiresharkでの接続を見ることができます。
つの質問:
1)これはPOSTを介してデータを送信するのが正しい方法であり、
2)どのように私は、アプリケーションからの応答を取得します。
私はcurl_easy_recv()
を使用する必要があると思っていましたが、私はどのように見えません。どのサンプルコードも歓迎します。おかげさまで
アプリケーションから返されるデータは、200 OKの直後です。私は、要求がOKになったかどうかを確認するためにヘッダーを読む必要がありますが、その後にデータがあります。何か案は?そしてファイルにするのではなくchar * –
情報についてはchar * ptrではなくvoid * ptrでなければなりませんが、レスポンスの処理に使用しているコードで回答を編集します。 – asc99c
ありがとう、ありがとう。今私はすべての情報を解析する必要があります。助けてくれてありがとう –