0

現在、QtコードをCに移植しています。

Qtコード:

QNetworkAccessManager *manager = new QNetworkAccessManager;
QByteArray data;
QNetworkRequest request;

mainReply = manager->post(request, data); //What is the equivalent in libcurl?
connect(mainReply, SIGNAL(finished()),   this, SLOT(get_imghttpFinished()));

libcurlを使用して同じコードをCに移植したいと思います。「manager->post」と同等の機能を提案できる人はいますか?

4

1 に答える 1

1

その行で、QNetworkAccessManager は単純な POST 要求を実行します。curl のドキュメントによると、このコードを次のように置き換えることができます。

char *data="name=daniel&project=curl";
curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, data);
curl_easy_setopt(easyhandle, CURLOPT_URL, "http://posthere.com/");
curl_easy_perform(easyhandle);

これらのリンクは役立つかもしれません。curl の C バインディングに関するドキュメント (最初のリンクの HTTP POSTing の章を参照) と C で curl を使用して POST リクエストを実行する例があります。

http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

http://curl.haxx.se/libcurl/c/postit2.html

これが役に立ったことを願っています:)

curl_formadd 編集: functionを使用してファイルを送信できるようです。事前に読み取る必要はありません。

curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",   CURLFORM_FILE, "my-face.jpg", CURLFORM_END); 
于 2012-08-27T15:04:11.367 に答える