微信小程序请求server时遇到的2个问题

时间:2022-05-07
本文章向大家介绍微信小程序请求server时遇到的2个问题,主要内容包括简介、问题1: invalid url、问题2: TLS 1.2、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

简介

微信小程序与服务器的沟通逻辑并不复杂,流程:

前3步做好以后,我在最后一步遇到了2个问题,花费了很多时间,总结出来供大家在开发小程序时参考

问题1: invalid url

在小程序中调用网络请求接口从服务器获取数据:

wx.request({
  url: 'https://www.xxx.com/test.php',
  ...
})

这段代码非常简单,小程序API中也给出了示例代码,但执行后报错:

request:fail invalid url 

文档没有此类错误的说明,网上也没有资料,试了很多方法都不行

很费解,找不到原因,后来在一次无意的尝试中解决了

方法:把 url 的单引号改为 `(与 ~ 同键)

...

url: `https://www.xxx.com/test.php`,

...

我这个 url 字符串中并没有引用变量,不明白为什么单引号不行,而需要使用 `,如果你知道原因,拜托发个消息指点我一下

问题2: TLS 1.2

上个问题解决后,又出现新的问题:

TLS版本必须大于等于1.2

这个问题是小程序文档中明确指出的,这说明自己服务器的TLS版本过低,需要升级

先查看一下自己的 TLS 版本是多少:

浏览器中访问自己的 https URL,浏览器地址栏前面有个绿色小锁的图标,点击后可以查看安全信息,其中就有 TLS 的版本,我的为 TLS 1.0

升级过程

1)升级 OpenSSL

查看服务器 OpenSSL版本

openssl version -a 

0.0.98,这个版本还不支持 TLS 1.2,要升级到 1.0.2

2)重新编译 Nginx

之前安装 Nginx 时 OpenSSL 是旧版,OpenSSL 升级后需要重新编译 Nginx

这两步做完后,浏览器中再次访问,点击绿色锁查看信息,TLS 版本变为了 1.2,在小程序客户端中也可以正常得到请求结果

小结

这里介绍的是大体思路,具体操作步骤之后再整理出来发布,例如:

  • 免费SSL证书的申请方式
  • Nginx https 的配置方式
  • OpenSSL升级步骤