解决openresty http客户端不支持https的问题
OpenResty默认没有提供Http客户端,需要使用第三方提供;当然我们可以通过ngx.location.capture 去方式实现,但它只能发送一个子请求。
第三方基本是以lua-resty-http为代表,这个类库如果去访问http和正规的https是没有问题,也挺好用的,但如果访问使用山寨证书的请求会出一些错误,比如:handshake failed,socket error等等之类的错误。对于种我的解决办法是使用curl,可以很好解决这个问题,现在来看算是比较完美的。
具体代码如下:
local curl = require("luacurl")local function postJson(url,postData,c)local result = { }if c == nil thenc = curl.new()endc:setopt(curl.OPT_URL, url)c:setopt(curl.OPT_SSL_VERIFYHOST,0)c:setopt(curl.OPT_SSL_VERIFYPEER,false)c:setopt(curl.OPT_POST,true)c:setopt(curl.OPT_HTTPHEADER, "Content-Type: application/json")c:setopt(curl.OPT_POSTFIELDS, postData)c:setopt(curl.OPT_WRITEDATA, result)c:setopt(curl.OPT_WRITEFUNCTION, function(tab, buffer)table.insert(tab, buffer)return #bufferend)local ok = c:perform()return ok, table.concat(result) endlocal ok,html = postJson(serverUrl,data);if ok thenngx.say(html)end
转载于:https://www.cnblogs.com/wfcfan/p/5257684.html
解决openresty http客户端不支持https的问题相关推荐
- Retrofit 2.0 超能实践(一),okHttp完美支持Https传输
http: //blog.csdn.net/sk719887916/article/details/51597816 Tamic首发 前阵子看到圈子里Retrofit 2.0,RxJava(Andro ...
- curl提示不支持https协议解决方法
curl提示不支持https协议解决方法 参考文章: (1)curl提示不支持https协议解决方法 (2)https://www.cnblogs.com/biaopei/p/8669810.html ...
- php cur https,解决php-curl不支持https问题
主要原因是因为之前安装的 curl 不支持 https 协议,导致 php-curl 也不支持 https 协议 #/server/app/services/bin/curl -V 查看curl ...
- 百度分享不支持https解决方法
在页面中加入百度分享的功能时,其不支持https.有一个很好的解决方法就是把百度分享的代码下载到本地,放到本地服务的根目录中. 步骤如下: 1.下载的百度分享包括这些文件: 其中static是放到项目 ...
- loadrunner支持https协议的操作方法-经验总结
问题:用户portal支持https协议,用loadrunner录制登陆脚本时发现未录制到用户名和密码 录制到的脚本如下: login() { lr_think_time(10); web_url(& ...
- TurboMail邮件系统支持HTTPS双向认证
2019独角兽企业重金招聘Python工程师标准>>> HTTP单向认证已经被普遍应用,而对企业邮箱安全保密要求更加严格的企事业单位,例如国家保密局等单位,为了达到闭环的安全加密要求 ...
- node如何让一个端口同时支持https与http
众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器. 比如一个很简单的http服务器: var http = require('http'); var ...
- iOS10 适配 ATS(app支持https通过App Store审核) 韩俊强的博客
一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的 ...
- 使用 Indy WEB Server 支持 https
之前我在本站有博客文章,详细说明了,如何使用 OpenSSL 程序自己签发证书,用于基于 Indy 的 WebBroker 或者 WebService 程序,然后使用浏览器或者 Delphi 开发的 ...
最新文章
- Spring核心AOP(面向切面编程)
- android Mac OS X 中 VT/NX
- ise怎么更改编辑器_Win7系统时间更改不了的解决方法
- 快速排序python实现
- div 背景图 居中
- 6005.boost多线程与mavlink协议结合实现消息收发
- lua调用shell 脚本
- linux性能测试cpu内存io,Linux下磁盘IO性能测试工具介绍
- java8彩蛋_随笔,JDK8的新时间工具类
- 打分框手工输入分值的技术要领
- 22个HTML5和CSS3表单教程
- php 调用极光api,利用php+curl调用极光IM第三方REST API方法经验
- Hi3559A Hi3519A Hi3556A算力对比
- 联想G480 i3 2348M扩展内存
- HttpClient:connection still allocated 完美处理
- Bigdecimal BigDeciamal元转换为万元,转换为百分数,字符串与数值互转,整数/浮点数转换为BigDeciamal 获取当前年月日时分秒 百分比数据保留两位小数
- totolink路由器虚拟服务器,不怕没信号 TOTOLINK-N350R路由器任你用
- 「1077」Kuchiguse
- 2019寒假作业3编辑总结
- 软件测试课堂练习题答案 中国大学mooc
热门文章
- 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
- 666! 玩王者,识英雄,这样也能上顶会!
- 用 Python 写软件原来这么简单
- 【OpenCV】OpenCV函数精讲之 -- 初级图像混合
- 脑洞大开!油画渲染的新算法 Paint Transformer!ICCV2021 Oral!
- 阿里达摩院发布2019十大科技趋势!AI专用芯片将挑战GPU的绝对统治地位
- java中JOptionPane类_Java学习之JOptionPane类
- 简易的深度学习框架Keras代码解析与应用
- 热敏电阻如何查表计算温度_简单说说NTC热敏电阻
- 华为mate20pro权限管理_华为钉子户--谈谈Mate20Pro