如何将 cURL 转换为 libcurl(c)

How to convert cURL to libcurl(c)

我有以下命令及其工作。 - 使用摘要认证 - 使用 json 数据

curl -v --digest -u user:passwd -X POST http://192.168.139.65:80/digest/getMode -H "Content-Type: application/json" -d '{"Data":{}}'

我想将 cURL 转换为 libcurl。

curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.139.65:80/digest/getMode");
headerlist = curl_slist_append(headerlist, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_easy_setopt(curl, CURLOPT_USERPWD, "user:passwd ");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"Data\":\t{}\r\n}");

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

但是我失败了,return 401.有没有遗漏?感谢帮助

最后,我检查了两种方法之间的消息差异。我发现 TCP_NODELAYUSERAGENT 在 cURL 中使用。我需要添加这两个命令。

只需在 curl 命令后添加 --libcurl -filename.c。这将创建一个 C 源文件,执行与您的 curl 命令完全相同的操作。