将Qt代码移植到C(使用libcurl进行POST)

时间:2012-08-27 14:02:24

标签: qt http-post libcurl

目前我正在将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”的等效功能吗?

1 个答案:

答案 0 :(得分: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);