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

将Qt代码移植到C(POST使用libcurl),qt,http-post,libcurl,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()), thi

目前我正在将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。
有人能推荐“管理者->发布”的等效功能吗?

在这一行中,QNetworkAccessManager执行一个简单的发布请求。根据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绑定的文档(请参阅第一个链接中的httpposting一章)和在C中使用curl执行POST请求的示例

希望这有帮助:)

编辑:似乎您可以使用
curl\u formadd
发送文件,而无需事先阅读

curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",   CURLFORM_FILE, "my-face.jpg", CURLFORM_END); 

我假设
**mainpreply=manager->post(请求、数据)**是要强调那一行吗?不要在代码中这样做。也许在后面加上评论。但加粗不起作用,只会让人困惑。是的,这是为了强调这句话。我把它编辑成了一条评论<代码>**mainReply
表明了完全不同的情况。是否可以在不进行编码的情况下发送二进制数据(图像数据)?我认为是的,解决方案将取决于您读取图像的方式。图像数据应使用以下函数curl\u easy\u setopt(curl,CURLOPT\u POSTFIELDS,fdata)传输:;curl_easy_setopt(curl,CURLOPT_POSTFIELDSIZE,size);