版本使用了7.66 没有用最新的,测试的时候发现7.66以后的版本每次访问都会有1~3条本地(127.0.0.1)的连接和发送数据,不知道是什么问题
支持 HTTP/HTTPS/WebSocket/zlib (WebSocket 模拟出来的)
其他的协议都去掉了,SSL由openssl换成SSPI 文件小的很多
修改内容
增加 curl_slist_add 以替代 curl_slist_append
curl_slist_append 接口在添加的时候没有检查重复和覆盖的功能
添加相同的头信息后发送的时候会有多条头信息
curl_slist_add 添加的时候会检查重复并覆盖,删除重复的头
添加 Curl_Perform 以替代 curl_easy_perform
可实现提交取返回一次性完成,不需要自己设置回调,处理数据
增加上传/下载进度的功能,可实现获取实时进度
CURL本来不支持 WebSocket 协议
使用了模拟的方法 实现了 WebSocket 协议
使用 CURLOPT_CONNECT_ONLY 连接服务器成功后
构造请求头发送后获取返回的数据,判断是否是 WebSocket
之后创建线程,循环获取服务器返回的数据,
发送和接收到的数据 使用 WebSocket 协议进行组包和拆包,得到实际的数据
访问的 URL,把 WS/WSS 替换成 HTTP/HTTPS 即可
没有做长连接测试,不知道是否支持
WebSocket 只做了简单是处理,可能有BUF,有能力的可以完善下
支持多线程,多线程循环访问没有出错
libcurl.rar (179 K) 下载次数:136
Vc 源码
curl-7.66.rar (3591 K) 下载次数:67
项目在 projects\Windows 文件夹里
我使用的是 Vc14(VS2015),Vc14-是原始未修改的
Vc10(VS2010,生成的文件更小),也是修改的,可以用,Vc10-是原始未修改的