【问题标题】:CURL does not return proper error codeCURL 不返回正确的错误代码
【发布时间】:2014-01-10 19:24:48
【问题描述】:

这里的输出应该不是 0。

因为根据 libcurl 文档的 0 是成功的。 http://curl.haxx.se/libcurl/c/libcurl-errors.html

curl_easy_setopt(curl_handle, CURLOPT_PROXY, "socks5://127.0.0.1:9050");

显然 curl_easy_setopt 应该返回 5 即 CURLE_COULDNT_RESOLVE_PROXY

#include <iostream>
#include <string>
#include <curl/curl.h>
using namespace std;
int main()
{
    CURL *curl_handle;
    CURLcode err;
    curl_global_init(CURL_GLOBAL_ALL);
    curl_handle = curl_easy_init();
    err = curl_easy_setopt(curl_handle, CURLOPT_PROXY, "socks5://127.0.0.1:9050");
    cout << err;
}

我在这里错过了什么吗?

【问题讨论】:

  • 无法解析代理听起来好像只是因为 DNS 错误,但您没有 DNS 名称,所以我不希望看到它。
  • 您只是在此处设置代理选项...在您实际发送请求之前,curl 不会尝试使用它。
  • @LulzAge 虽然经常出现在论坛中,但在 SO 上编辑 Q 并将“已解决”放在标题中是合适的。请不要在未来这样做。相反,选择正确的答案并将其标记为“已接受”。这样,网站就可以处理信息并进行相应的处理。
  • @DanielFrey 哦,好的。我会记住的。

标签: c++ curl libcurl


【解决方案1】:

谢谢大家的回复。

我在 google 上查看了“CURLE_COULDNT_RESOLVE_PROXY”并遇到了一些示例。

原来我必须在每次 curl_easy_setopt 之后调用 curl_easy_perform(curl_handle) 才能获取错误代码。

err = curl_easy_perform(curl_handle);
cout << err;

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 2021-01-28
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多