Curl API和命令行选项,用于使用用户名和&amp ;;进行身份验证。密码已启用https网址

时间:2014-04-02 12:26:18

标签: c linux curl

我正在尝试使用"用户名和密码"来验证HTTPS网址。在linux(Fedora 14 curl 7.30.0 (i686-pc-linux-gnu) libcurl/7.30.0 OpenSSL/1.0.0 zlib/1.2.5enter image description here)平台中使用基于C的curl API和curl命令行参数。

当我在Mozilla网络浏览器中使用该URL时,它会提示输入用户名,密码一次 - 在我按下" OK"我能够得到内容。但是,如果我按下取消按钮,"登录被用户取消"显示。附上错误(屏幕截图)。

如何验证和避免"用户取消登录"使用curl API和命令行参数的异常?

以下是我尝试的选项,但错误仍然相同 - "用户取消登录"

命令行:

curl -k --user "xxxxx:xxxxx" "https://fsgpos.opensoft.co.bw/ipa/statement/get/LN001234"

Curl API:

curl_easy_setopt(curl, CURLOPT_USERNAME,"xxxxxxxx");

curl_easy_setopt(curl, CURLOPT_PASSWORD,"xxxxxxxx");

如何使用有效的curl选项和API参数处理此异常?

3 个答案:

答案 0 :(得分:0)

curl -X POST http://<auth url> --user "<username>:<password>" -c ~/cookies
  • -c可选择在cookie中存储登录

答案 1 :(得分:0)

您是否提供客户端证书,客户端密钥和根证书

curl_easy_setopt(pcurlHandle, CURLOPT_SSLCERT, clientcertfile);

curl_easy_setopt(pcurlHandle, CURLOPT_SSLKEY, clientkeyfile);

curl_easy_setopt(pcurlHandle, CURLOPT_CAINFO, rootcertfile);

您的代码将有助于调试。

答案 2 :(得分:0)

在你的卷曲中使用UserAgent字符串。与浏览器相比,这是您唯一缺少的。

    -A "Mozilla 6.0"

此外,还要添加-v参数,并向我们显示curl的调试消息。