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