首页 > 解决方案 > 我无法让 libcurl 在特定的 url 中正常工作

问题描述

我正在使用 Visual Studio 2017 上的 libcurl 从 google url 获取请求,但程序在没有调用被捕获的异常的情况下崩溃。我已经用其他 2 个网址进行了测试,效果很好。谷歌网址是:“ https://maps.googleapis.com/maps/api/elevation/json?locations=-23.64737184441803,-46.624&key=AIza ....”

当我执行代码中断而不被异常捕获时:

代码是:

std::stringstream get_response(std::string_view url)
{
   std::stringstream str;
   curl::curl_ios<std::stringstream> writer(str);

   curl::curl_easy easy(writer);

   easy.add<CURLOPT_URL>(url.data());
   easy.add<CURLOPT_FOLLOWLOCATION>(1L);
   easy.add<CURLOPT_VERBOSE>(1L);

   try
   {
     easy.perform();
   }
   catch (curl::curl_easy_exception error)
   {
      auto errors = error.get_traceback();
      error.print_traceback();
   }

   return str;
}

我看过几个网站都没有成功。

任何帮助将不胜感激

标签: libcurl

解决方案


我从日志中获得了更多信息:

...
schannel: SSL/TLS connection with maps.googleapis.com port 443 (step 2/3)
schannel: encrypted data got 778
schannel: encrypted data buffer: offset 3542 length 4096
schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) -The revocation function was unable to check revocation because the revocation server was offline.
Marked for [closure]: Failed HTTPS connection
....

如何解决这个问题?

谢谢


推荐阅读