我正在开发C++软件,它必须通过REST API与API进行通信。我用的是httplib。我做下一个:
httplib::SSLClient cli("https://www.google.com");
httplib::Result res = cli.Get("/doodles");
if (res && res->status == 200)
{
std::cout << res->body << "\n";
}
else
{
auto err = res.error();
std::cout << httplib::to_string(err) << "\n";
}
它会返回以下错误消息:Could not establish connection
如果我在浏览器中键入给定的URL,它就正确对应了。我试图将端口号(443)输入到SSLClient
的构造函数中,但没有得到任何不同的结果。我的PC上有OpenSSL,我包括了httplib,如下所示:
#define CPPHTTPLIB_OPENSSL_SUPPORT
#include <httplib\httplib.h>
我应该做些什么来实现我的目标?
先谢谢你。
1条答案
按热度按时间w1e3prcc1#
它似乎只能在解析URL时使用
host
部分。我在MinGW 64(gcc 13 & cpp-htplib 0.12.6)上遇到了同样的问题。
如果只需要URL的
host
部分,可以使用符合规范的库,例如ada库。下面的代码可以成功下载“www.example.com”的主页google.com并写入文件。
编译命令(Windows,MinGW 64):
g++ x1.cpp -I. -static -lcrypt32 -lwinmm -lssl -lcrypto -lws2_32