如何将cURL转换为libcurl(c)

时间:2018-07-20 08:09:43

标签: curl libcurl

我有以下cmd及其工作。 -使用摘要身份验证 -使用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);

但是我失败了,它返回401。是否缺少任何内容?感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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