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 功能的文件,而无需事先阅读。

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