如何使用 libcurl 进行 HTTP 发布?
Posted
技术标签:
【中文标题】如何使用 libcurl 进行 HTTP 发布?【英文标题】:How to use libcurl for HTTP post? 【发布时间】:2012-05-18 10:15:04 【问题描述】:我是使用 libcurl 的新手。我不清楚如何将它用于 HTTP POST 请求以及如何检查结果。我该如何使用它?
【问题讨论】:
你检查了吗:curl.haxx.se/libcurl/c/postit2.html 亲切的问候,博 是的,我检查了它,但它是用于上传文件的,我必须用它来提交表单我不清楚它是如何完成的。 【参考方案1】:#include <curl/curl.h>
main()
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/hello-world");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "foo=bar&foz=baz");
curl_easy_perform(curl);
curl_easy_cleanup(curl);
【讨论】:
如何提交multipart/formdata? 非常感谢!! 我怎样才能以这种方式上传文件? 发表问题?【参考方案2】:有关-d
选项的文档,请参阅手册页。您可以多次使用它来将不同的键、值对传递给服务器。一旦成功,请使用--libcurl
标志查看如果您尝试使用 libcurl 在应用程序中手动执行此操作会是什么样子。
【讨论】:
我只是想使用 libcurl 提交一个表单,说我必须提交在 yahoo.com 上创建帐户我应该怎么做?我不想上传文件,但要提交表单。 K 生成的代码正在使用 POSTFIELDS。但我想提交一个html表单。 到底是什么问题?据我所知,postfields 是您要发布的值。 K 它也可以使用。但是如何使用函数 curl_formadd() 呢?我读到这个函数基本上是用来向服务器提交表单数据的。给出了上传文件的示例。我想用它来填写表格并提交。 如果您遇到真正的问题,为什么不尝试一下并回复?我自己没有使用过libcurl
,这是基于我浏览文档的建议。【参考方案3】:
这是为了分享我使用 libcurl 开发 REST 客户端的经验,我找到了一种非常简单的方法来找出 ANY REST 的 code sn-ps >在多种语言中使用POSTMAN调用。它真的对我有用!!!
安装 POSTMAN 并检查右侧是否有一个名为 'Code'
的按钮(我仅在 Windows 上使用过,但应该适用于其他操作系统,并且 libcurl 可以跨许多操作系统移植)
如果有人想阅读文档和示例,可以在这里找到。 https://curl.haxx.se/docs/faq.html#What_is_cURL
您可以使用 libcurl 在左侧窗格中找到支持的语言的正确代码 sn-ps。 C、C#、php、Python、Java、Java 脚本等...
最好的办法是您可以测试来自 POSTMAN 的调用,同时也可以从命令提示符中找到正确的代码 sn-p 和 curl 命令(如果您从左侧窗格中选择 cURL
)
【讨论】:
以上是关于如何使用 libcurl 进行 HTTP 发布?的主要内容,如果未能解决你的问题,请参考以下文章
基于 Boost.ASIO 的 HTTP 客户端库(如 libcurl)[关闭]
如何使用 libcurl(或其他方式)从 HTTP 服务器检索文件? [复制]