Windows LIBCurl支持http2.0

今天windows下 vs2019环境环境记录

libcurl 在7.43版本就支持http2.0 文章地址

我本地的版本是7.77

libcurl支持http2.0需要nghttp2库 我下的v1.52.0版本

下载解压以后,使用x64 Native Tools Command Prompt for VS 2019命令行工具 cd到改目录下

执行cmake C:\Users\wjr\Downloads\nghttp2-1.52.0 命令

cmake C:\Users\wjr\Downloads\nghttp2-1.52.0

就可以生成sln文件

 然后我们只需要编译nghttp2这个子工程就行,其他不管

 这里我的需要是dll改成MT版本的 lib

 

添加  #define NGHTTP2_STATICLIB 1

就可以生成MT版本的nghttp2.lib

现在处理libcurl 增加宏USE_NGHTTP2

 包含目录

 

 curl工程增加刚刚添加的库编译就成功了

测试下刚刚编译的curl 成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows下使用libcurl实现HTTP长连接和SSE(Server-Sent Events)的步骤如下: 1. 安装libcurl库 首先需要在Windows系统中安装libcurl库,可以从官网下载最新的libcurl二进制文件进行安装。 2. 实现HTTP长连接 使用libcurl实现HTTP长连接的关键是设置CURLOPT_FORBID_REUSE选项为0,这样就可以让libcurl在请求结束后保持连接状态,以便后续的请求可以复用同一个连接。 示例代码: ```c #include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 0L); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); curl_easy_cleanup(curl); } return 0; } ``` 3. 实现SSE 使用libcurl实现SSE需要设置CURLOPT_WRITEFUNCTION选项为一个回调函数,并在回调函数中处理服务器发送的数据。 示例代码: ```c #include <stdio.h> #include <curl/curl.h> static size_t sse_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { // 处理服务器发送的数据 printf("%.*s\n", (int)(size * nmemb), ptr); return size * nmemb; } int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/sse"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, sse_callback); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); curl_easy_cleanup(curl); } return 0; } ``` 在上面的代码中,我们设置了CURLOPT_WRITEFUNCTION选项为sse_callback函数,这个函数会在收到服务器发送的数据时被调用。在函数中,我们可以对服务器发送的数据进行处理,例如解析JSON数据等。同时,我们还需要设置CURLOPT_FOLLOWLOCATION选项为1,以便能够自动重定向到SSE流的正确地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值