libcurl 相关问题

仅将此标记用于与多协议互联网传输库相关的问题,有关命令行工具的问题请使用特定的卷曲标记

使用 libcurl 时出现“SSL CA 证书问题”错误

我使用--openssldir=< path to ssl >/ssl(链接到/etc/ssl)构建了openssl 1.1.1,并使用--with-ssl=< path to openssl >构建了curl 7.76.1。 编译了以下代码: #包括 我使用--openssldir=< path to ssl >/ssl(链接到/etc/ssl)构建了openssl 1.1.1,并使用--with-ssl=< path to openssl >构建了curl 7.76.1。 编译了以下代码: #include <iostream> #include <curl/curl.h> int main() { CURL *curl = curl_easy_init(); if (curl) { struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Accept: */*"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_URL, "https://<address>"); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "<some data>"); curl_easy_perform(curl); curl_slist_free_all(headers) } curl_easy_cleanup(curl); } 当我运行此代码时,出现错误: curl_easy_operation() failed : Problem with the SSL CA cert (path? access rights?) 我在 strace 中看到,它正在尝试打开“/etc/pki/tls/certs/ca-bundle.crt” 但在我的机器(Ubuntu 12 和 Ubuntu 14)中没有文件夹“/etc/pki”。 为什么curl使用“/etc/pki”而不是“/etc/ssl”?我怎样才能强制它使用“/etc/ssl”? 我尝试使用 --without-nss 构建curl,但没有成功。 编辑: 我的解决方案是添加以下代码: ifstream caBundleFile("/etc/pki/tls/certs/ca-bundle.crt"); if (caBundleFile.good()) { curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/pki/tls/certs/ca-bundle.crt"); caBundleFile.close(); } else { curl_easy_setopt(curl, CURLOPT_CAPATH, "/etc/ssl/certs"); } 有两种流行的存储根证书的格式。第一个适用于 RHEL/Centos 等,第二个适用于 Ubuntu 等发行版。 对于未来的读者,答案是设置curl CA路径 #include <iostream> #include <curl/curl.h> const std::string curlCertPath = "./keys/curl-ca-bundle.crt"; int main() { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/"); curl_easy_setopt(curl, CURLOPT_CAINFO, curlCertPath.c_str()); res = curl_easy_perform(curl); if (res == CURLE_OK) { std::cout << "Curl worked" << std::endl; } else { std::cout << "Error: curl failed: " << curl_easy_strerror(res) << std::endl; } curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }

回答 1 投票 0

如何使用 CURLINFO_*_TIME 值估算 cURL 请求的代理连接时间?

下面是一个小数据集,我试图从中回答两个问题: 代理连接到 API 服务器需要多长时间? API 请求需要多长时间才能返回? 基本...

回答 2 投票 0

将 URI 请求添加到 LibCurl Post 命令

我正在使用 ubuntu 22.04 和 libcurl 7.81.0 创建和发送 onvif post 命令。我最初让一切都在 python 中工作,但无法在最终项目中使用 python。因此我想...

回答 1 投票 0

Telegram 机器人不发送消息

#包括 #包括 int 主函数(无效){ 卷曲*卷曲; CURLcode 响应; char* token = "不会在这里发布我的机器人令牌"; 字符 * 频道 ID = "

回答 1 投票 0

交叉编译libcurl以在ios模拟器上运行

我需要交叉编译 libcurl,以便我可以在 Xcode iOS 模拟器上运行的 iOS 应用程序中使用它的 API。我有一个简单的 swift 应用程序,可以调用 C 驱动程序函数,然后

回答 1 投票 0

卷曲不正确的身体

问题在于解析curl命令中的正文 我使用网络应用程序执行帖子请求并且成功,并且我得到了帖子的curl命令如下:curl -k -u“redacted:

回答 1 投票 0

CURLOPT_WRITEDATA 问题

我正在使用 libcurl 使用 GET 请求从网络服务器获取 json 数据。 这是我的示例代码: 字符*下载响应; static int writer(char *data, size_t size, size_t nmemb, char *buffer...

回答 1 投票 0

Libcurl Write_data 被多次调用,导致缓冲区中的数据被截断

我的桌面上运行着一个Python服务器,它解析一个大的CSV文件,并将每一行发送到嵌入式设备,以响应HTTP请求作为cjson文件设置,就像这样可以接收j...

回答 1 投票 0

不能在cmake中包含libcurl

我在 mac 上准备了一个项目,现在我继续在 windows 上开发。 我的项目有这样的结构: 项目 包括 HttpClient.h 源代码 HttpClient.cpp CMakeLists.txt CMakeLists.txt 主程序 目前...

回答 1 投票 0

通过libcurl和NodeJS的数据交换问题

我有一个用 C 语言编写的 Windows x64 客户端,需要将文本发送到 NodeJS 服务器,所以我使用 libcurl 来实现这一点,但它不起作用,数据似乎没有到达服务器。 这是客户

回答 1 投票 0

如何在libcurl中获取下载总时间?

在xferinfo2函数中 ret 返回 errcord [48]。 48 是 CURLE_UNKNOWN_OPTION, /* 48 - 用户指定了未知选项 */ printf 结果是 视网膜48 总时间:0.000000 下: 41992 / 45998104 ...

回答 1 投票 0

如何处理libcurl中接收到的宽字符数据

我正在尝试使用 deepl API 通过 libcurl 发出发布请求。我不知道如何处理收到的宽字符数据。 有一个这样的函数,但它只能处理 char* 类型的数据。 是...

回答 1 投票 0

使用 libcurl 集成搜索栏

我正在使用curl库访问一个网站并获取该网站上搜索栏的结果。它们都在同一个网站上,没有重定向,所以我不能只执行 .com/search?=... 搜索栏已定义...

回答 1 投票 0

如何将 libcurl 与 Android 版 Qt6 链接

在我们的 CMakeLists.txt 中,我们有: find_package(需要卷曲) 这对于 Debian 本机编译非常有用。 然而,当针对 Android 时,我们得到: 找不到 CURL 我该怎么做才能链接 libcu...

回答 1 投票 0

无法在另一台机器上运行我编译的 C++ 可执行文件。说“libcurl.dll 未找到”

我正在尝试将 libcurl 库静态链接到我的可执行文件中,这样我就可以在其他计算机上运行我的可执行文件,而无需 dll 文件,因为所有必需的文件都已烘焙在我的可执行文件中...

回答 1 投票 0

使用libcurl作为客户端与服务器进行密钥交换时会出现意外的算法

我们系统中ssh_config的密码配置为: 主机密钥算法 ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、ecdsa-sha2-nistp521 当我使用 ssh 或 sftp 连接到服务器并使用网络时

回答 1 投票 0

在调试使用 gdb 库的程序时进入 libcurl 函数

我正在尝试调试一个使用libcurl库的程序并使用gdb单步执行库函数。 到目前为止我已经尝试过的。我下载了curl的源代码 git 克隆 https://github.com/curl/curl.git...

回答 1 投票 0

在 Visual Studio 2019 中使用 libcurl 时生成错误

我正在尝试让 libcurl 工作。我是第一次使用 libcurl。我使用 vcpkg 安装了 libcurl。 C:\Users\infib cpkg>vcpkg 安装curl 以下软件包已安装...

回答 2 投票 0

在 Ubuntu 20.04 上运行的 RStudio Workbench 中出现curl 版本错误

在 Ubuntu 20.04 上运行的 RStudio Workbench 内的项目中重新启动 R (4.3.1) 时,我收到以下错误消息: 正在重新启动 R 会话... 项目... $ /usr/local/bin/curl --version ---...

回答 1 投票 0

如何使用 libcurl 从 github 版本下载 .zip/rar 存档?

我有一个问题,如何从 github 版本下载存档(.zip/.rar)。对于简单的 .html 页面,它可以正常工作,但对于 github 版本则不行。奇怪的是 libcurl 返回了 CURL_OK

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.