openresty中lua的https请求报错的代替办法(丑-创新互联

openresty中是有一套请求http/https的方法的:resty.http。https请求需要添加证书文件crt,但是我试了老半天,centos下所有的证书文件都试过去了,找不到钉钉api.dingtalk.com对应的证书。而且还报错缺少ssl模块。
而用curl请求是可以拿到正常结果的,故而产生了一个歪念头。。。。

创新互联-专业网站定制、快速模板网站建设、高性价比宿迁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宿迁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宿迁地区。费用合理售后完善,10多年实体公司更值得信赖。

url = "https://oapi.dingtalk.com/gettoken?appkey="..appkey.."&appsecret="..appsecret
cmd = "echo curl -s \""..url.."\""
t = io.popen(cmd)
,, d = string.find(t:read(), '{"errcode":0,"access_token":"(%S+)","errmsg')

哈哈,是不是看上去很怪异?lua调用命令行,然后捕获返回信息,再用正则去解析。
实在没办法了,证书这个问题卡了我很久,到现在也没有解决,所以用了这个办法,还完美规避了resty中一些依赖的缺失问题。

★注意,这里不能直接调用curl哦,因为返回值会抛出一些过程信息,拿到的是一堆无法解析的乱码,必须用echo屏蔽掉这些信息,然后才能上正则。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:openresty中lua的https请求报错的代替办法(丑-创新互联
文章转载:http://myzitong.com/article/coicgc.html