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的问题相关推荐

  1. Retrofit 2.0 超能实践(一),okHttp完美支持Https传输

    http: //blog.csdn.net/sk719887916/article/details/51597816 Tamic首发 前阵子看到圈子里Retrofit 2.0,RxJava(Andro ...

  2. curl提示不支持https协议解决方法

    curl提示不支持https协议解决方法 参考文章: (1)curl提示不支持https协议解决方法 (2)https://www.cnblogs.com/biaopei/p/8669810.html ...

  3. php cur https,解决php-curl不支持https问题

    主要原因是因为之前安装的 curl 不支持 https 协议,导致 php-curl 也不支持 https 协议 #/server/app/services/bin/curl -V   查看curl ...

  4. 百度分享不支持https解决方法

    在页面中加入百度分享的功能时,其不支持https.有一个很好的解决方法就是把百度分享的代码下载到本地,放到本地服务的根目录中. 步骤如下: 1.下载的百度分享包括这些文件: 其中static是放到项目 ...

  5. loadrunner支持https协议的操作方法-经验总结

    问题:用户portal支持https协议,用loadrunner录制登陆脚本时发现未录制到用户名和密码 录制到的脚本如下: login() { lr_think_time(10); web_url(& ...

  6. TurboMail邮件系统支持HTTPS双向认证

    2019独角兽企业重金招聘Python工程师标准>>> HTTP单向认证已经被普遍应用,而对企业邮箱安全保密要求更加严格的企事业单位,例如国家保密局等单位,为了达到闭环的安全加密要求 ...

  7. node如何让一个端口同时支持https与http

    众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器. 比如一个很简单的http服务器: var http = require('http'); var ...

  8. iOS10 适配 ATS(app支持https通过App Store审核) 韩俊强的博客

    一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的 ...

  9. 使用 Indy WEB Server 支持 https

    之前我在本站有博客文章,详细说明了,如何使用 OpenSSL 程序自己签发证书,用于基于 Indy 的 WebBroker 或者 WebService 程序,然后使用浏览器或者 Delphi 开发的 ...

最新文章

  1. Spring核心AOP(面向切面编程)
  2. android Mac OS X 中 VT/NX
  3. ise怎么更改编辑器_Win7系统时间更改不了的解决方法
  4. 快速排序python实现
  5. div 背景图 居中
  6. 6005.boost多线程与mavlink协议结合实现消息收发
  7. lua调用shell 脚本
  8. linux性能测试cpu内存io,Linux下磁盘IO性能测试工具介绍
  9. java8彩蛋_随笔,JDK8的新时间工具类
  10. 打分框手工输入分值的技术要领
  11. 22个HTML5和CSS3表单教程
  12. php 调用极光api,利用php+curl调用极光IM第三方REST API方法经验
  13. Hi3559A Hi3519A Hi3556A算力对比
  14. 联想G480 i3 2348M扩展内存
  15. HttpClient:connection still allocated 完美处理
  16. Bigdecimal BigDeciamal元转换为万元,转换为百分数,字符串与数值互转,整数/浮点数转换为BigDeciamal 获取当前年月日时分秒 百分比数据保留两位小数
  17. totolink路由器虚拟服务器,不怕没信号 TOTOLINK-N350R路由器任你用
  18. 「1077」Kuchiguse
  19. 2019寒假作业3编辑总结
  20. 软件测试课堂练习题答案 中国大学mooc

热门文章

  1. 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
  2. 666! 玩王者,识英雄,这样也能上顶会!
  3. 用 Python 写软件原来这么简单
  4. 【OpenCV】OpenCV函数精讲之 -- 初级图像混合
  5. 脑洞大开!油画渲染的新算法 Paint Transformer!ICCV2021 Oral!
  6. 阿里达摩院发布2019十大科技趋势!AI专用芯片将挑战GPU的绝对统治地位
  7. java中JOptionPane类_Java学习之JOptionPane类
  8. 简易的深度学习框架Keras代码解析与应用
  9. 热敏电阻如何查表计算温度_简单说说NTC热敏电阻
  10. 华为mate20pro权限管理_华为钉子户--谈谈Mate20Pro