某日接到一个需求,三方的http接口改成https。好吧,老项目中封装的http工具已经过时了,那么就使用curl库。
封装的代码放到资源中(关键字network)
如果使用多线程,需要在程序启动阶段即使用network之前,声明全局变量curl_global_init(CURL_GLOBAL_ALL);
代码简单,不做介绍,记录几点使用过程遇到的问题。
- https访问返回403?
看着像客户端的问题,ip白名单也没问题。在不同的系统中执行比较,openssl版本不同结果不同。
高版本的系统没问题,问之,对方使用openssl1.1.0,遂升级。解决。
也可以服务端做改动。
- 编译32位的libcurl.so,在64位系统下
可以不升级系统的openssl,高版本放到local下,curl configure时指定目录 --with-ssl=...
- 404
url中有"-"等特殊字符,加上"\"转义后没问题。有的系统不需要转义,不明白原因。
- 不支持https
如果不支持,确认系统是否安装了ssl(openssl)。支持的情况为configure 贴图
扫描二维码关注公众号,回复:
2137011 查看本文章
ssl enabled则表示支持。