天道酬勤,学无止境

libcurl

C++ libcurl http response code issues

问题 这个问题/怪癖/副作用让我发疯。 在代码底部附近,HTTP 交互的响应代码通过引用传递到 responseCode_。 然而,即使该站点可以以其他方式访问,它也经常显示为 0,并且返回太快而无法超时...... 所有变量都已定义,下面的代码只是类中 C++ 方法的片段。 任何 var_ 变量都是基于实例的。 它在多个线程上运行,但这应该不是问题。 每个使用 libcurl 的类在各自的线程上都有自己的实例。 提前感谢您的任何想法或建议... CURL *curl; curl = curl_easy_init(); //The URL curl_easy_setopt(curl, CURLOPT_URL, url.getURLString().c_str()); //Timeout curl_easy_setopt(curl, CURLOPT_TIMEOUT, &timeout_); //disable signals to use with threads curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); //Redirecting curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 5); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); /

2022-07-11 09:44:39    分类:技术分享    c++   http   response   libcurl

Change Content-type using libcurl

问题 我有这个代码: #include <curl/curl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); curl_easy_setopt(curl, CURLOPT_URL, "localhost/rest-v1/devices/did1/tasks"); curl_easy_setopt(curl,CURLOPT_PORT,22080); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"hello\" : \"darkness\"}"); res = curl_easy_perform(curl); } curl_easy_cleanup(curl); return 0; } 当我运行它时,我在控制台上得到这个打印: * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 22080 (#0) > POST

2022-05-17 05:31:32    分类:技术分享    c   http   post   http-headers   libcurl

How to install libcurl under MacOS10.12 and use for Xcode?

问题 为 iOS 4.2 构建 libCURL 大家好:这是我的第一个堆栈溢出问题。 我已经阅读了之前发布的博客,但我仍然无法完成构建。 我不熟悉终端编程。 首先让我向您展示一些关于我的 Mac 上的 xcode 的基本信息。 `Wuqians-MBP:~ wuqianzhong$ xcode-select -p /Applications/Xcode.app/Contents/Developer Wuqians-MBP:~ wuqianzhong$ g++ -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.0.0 (clang-800.0.42.1) Target: x86_64-apple-darwin16.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin` 然后我输入了从博客 Building libCURL for iOS 4.2 中学到的以下

2022-05-15 20:30:11    分类:技术分享    xcode   macos   curl   libcurl

CURLE_PARTIAL_FILE error for large files with libcurl

问题 我已将 libcurl 库 (v7.38.0) 与我的 C++ 应用程序静态链接。 使用 curl,我们向/从服务器 https 上传和下载文件。 我下载失败并出现错误 CURLE_PARTIAL_FILE。 此问题随机发生,即有时文件成功下载而没有问题,有时同一文件因错误而失败。 此问题发生在 android 平台中。 任何人都可以告诉我如何解决这个问题 回答1 CURLE_PARTIAL_FILE 表示传输在完整内容到达之前中止。 这通常意味着服务器故障或网络问题,而不是客户端问题。 如果您不能影响网络或服务器状况,您可能需要考虑忽略此特定错误。

2022-05-11 02:01:02    分类:技术分享    android   libcurl

curl - How to set up TTL for dns cache & How to clear the curl cache

问题 在这个链接的最后它提到 http://comments.gmane.org/gmane.comp.web.curl.library/40895 只要您重新使用句柄,libcurl 默认使用其 DNS 缓存。 您可以更改它在缓存中保存条目的时间——它只是为了帮助“尖峰”或对相同主机名的快速请求,因为它没有获得“真实”的 TTL 值。 我已经浏览了 curl http://curl.haxx.se/docs/manpage.html 的所有文档,但我找不到任何方法来更改缓存中的时间 (TTL) curl 保留条目。 如何设置curl 缓存项的保存时间以及如何清除curl 缓存? 回答1 请参阅 CURLOPT_DNS_CACHE_TIMEOUT: 传递一个长,这以秒为单位设置超时。 名称解析将保存在内存中并在此秒数内使用。 设置为零以完全禁用缓存,或设置为 -1 以使缓存的条目永久保留。 默认情况下,libcurl 将此信息缓存 60 秒。 除了关闭句柄或可能将下一个请求的超时设置为 0 之外,没有明确的方法来刷新 dns 缓存。

2022-05-08 23:21:26    分类:技术分享    curl   libcurl

Make git revert to SSLv3 when TLSv1 fails with "Ignored Unknown Record"

问题 不能使用git : git clone https://github.com/foo/bar 失败: fatal: unable to access 'https://github.com/foo/bar': Unknown SSL protocol error in connection to github.com:443 如何强制git使用 SSLv3? 我尝试从源代码编译 git,但没有其他设置: --with-openssl (默认)。 在remote-curl.c中的第 408 行之前添加以下行也不起作用: curl_easy_setopt(slot->curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_SSLv3); 这里有一些线索: 案例 1 :当我的浏览器尝试访问https://github.com/foo/bar时,它首先尝试 TLSv1。 握手似乎没问题:服务器密钥交换,服务器问候完成(在 Wireshark)。 但随后是来自服务器的“忽略的未知记录”,最后是来自服务器的“连接重置”。 然后一个新的连接,但使用 SSLv3 启动,一切都很好(见图)。 案例 2 : curl使用 TLSv1 失败curl https://github.com/foo/bar 失败: curl: (35) Unknown SSL

2022-05-07 01:50:03    分类:技术分享    git   libcurl

WARNING: unrecognized options: --disable-netaccessor-libcurl

问题 我正在尝试按照本指南将 Xerces-C 安装到我的 Shibboleth 2 SP:https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxSourceBuild 但是当我运行: ./configure --prefix=/opt/shibboleth-sp --disable-netaccessor-libcurl我得到这个警告: WARNING: unrecognized options: --disable-netaccessor-libcurl [...] config.status: creating src/xercesc/util/Xerces_autoconf_config.hpp config.status: src/xercesc/util/Xerces_autoconf_config.hpp is unchanged config.status: executing depfiles commands config.status: executing libtool commands config.status: executing libtool-rpath-patch commands configure: WARNING: unrecognized options: -

2022-05-05 21:58:20    分类:技术分享    c++   apache   libcurl   xerces   shibboleth

undefined reference to curl_global_init, curl_easy_init and other function(C)

问题 我正在尝试在 C 中使用 Curl。 我访问了 Curl 官方页面,并复制了示例源代码。 以下是链接:http://curl.haxx.se/libcurl/c/sepheaders.html 当我使用命令“gcc test.c”运行此代码时, 控制台显示如下消息。 /tmp/cc1vsivQ.o: In function `main': test.c:(.text+0xe1): undefined reference to `curl_global_init' test.c:(.text+0xe6): undefined reference to `curl_easy_init' test.c:(.text+0x10c): undefined reference to `curl_easy_setopt' test.c:(.text+0x12e): undefined reference to `curl_easy_setopt' test.c:(.text+0x150): undefined reference to `curl_easy_setopt' test.c:(.text+0x17e): undefined reference to `curl_easy_cleanup' test.c:(.text+0x1b3): undefined reference to

2022-05-05 17:29:03    分类:技术分享    c   curl   libcurl

Should I set CURLOPT_UPLOAD when I POST file with cURL in PHP?

问题 当我尝试设置它时,它会强制请求方法为 PUT。 这是我在 CURLOPT_POSTFIELDS 中输入的内容: curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'fileUpload' => '@/home/apache/upload/dummy.sql' )); 或者我应该完全忽略 CURLOPT_UPLOAD 吗? 它说准备文件上传... 回答1 您可以放心地忽略它。 CURLOPT_POSTFIELDS足以上传文件。 curl 库将识别文件上传并设置内部所需的内容。 CURLOPT_UPLOAD背后的想法是告诉 curl 使用PUT方法,为其添加一些常见的文件上传标头,例如Expect: 100-continue标头,如果您使用的是HTTP/1.1 ,则使用分块编码上传未知大小的文件

2022-05-04 16:15:11    分类:技术分享    php   post   curl   libcurl

curl - How to set up TTL for dns cache & How to clear the curl cache

In this link at the last it mentions http://comments.gmane.org/gmane.comp.web.curl.library/40895 libcurl uses its DNS cache by default as long as you re-use the handle. You can change the time it'll hold entries in the cache - it is only meant to aid "spikes" or rapid requests to the same host names as it doesn't get the "true" TTL values. I have gone through all the documentation of curl http://curl.haxx.se/docs/manpage.html but I could not find any way to change the time (TTL) curl hold entries in the cache. How to set the curl cache item holding-time & how to clear the curl cache?

2022-05-03 05:06:42    分类:问答    curl   libcurl