使用c++从HTTPS请求JSON数据

Request JSON Data from HTTPS with C++?

本文关键字:JSON 数据 请求 HTTPS c++ 使用      更新时间:2023-10-16

我正在用c++编写一个程序,需要从HTTPS URL下载JSON数据。该程序基于wxWidgets。这个URL是Glosbe的翻译服务

所以我尝试了多个不同的库,包括:

  • libcurl
  • 提振。Asio
  • wxWidgets
  • 中包含的http功能
  • wxCurl
  • Urdl

但是,它总是抛出一个错误,说它不能连接,或者我得到一个回复,说"永久移动"。

当我复制并粘贴我正在测试的URL到浏览器中时,它会完美地返回JSON数据。

有谁知道这样做的正确方法吗?

任何帮助将是伟大的!

301 Moved permanent 是当您尝试使用HTTP而不是HTTPS访问页面时服务器响应的内容。以下是我刚刚从服务器收到的完整响应:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Jul 2015 20:25:01 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://en.glosbe.com/a-api

它的确切意思是:"您正在寻找的内容实际上是在https://en.glosbe.com/a-api。"您的浏览器遵循HTTP协议,遵循服务器的提示,并在您尝试访问http://en.glosbe.com/a-api时自动继续请求https://en.glosbe.com/a-api。作为用户,它可以无缝地为您工作。

您必须阅读更多文档才能自己创建HTTPS请求。您提到的每个库都有不同的方式支持HTTPS(或者根本不支持HTTPS)。例如,看看http://www.boost.org/doc/libs/1_58_0/doc/html/boost_asio/overview/ssl.html,特别是"Notes"部分,其中说"需要OpenSSL才能使用Boost"。Asio的SSL支持。"