微信小程序请求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升级步骤
- 后台模板管理系统___左侧菜单数据的异步加载
- Shiro眼皮下玩ajax,玩出302 Found
- 对于JSONObject,我只是临时抱佛脚
- 总结切面编程AOP的注解式开发和XML式开发
- SpringMVC注解@RequestMapping之produces属性导致的406错误
- SpringBoot集成MyBatis的分页插件PageHelper(回头草)
- SpringBoot整合Mybatis之进门篇
- Tomcat和Java Virtual Machine的性能调优总结
- 一次浴火重生的MySQL优化(EXPLAIN命令详解)
- 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】
- Java设计模式之适配器设计模式(项目升级案例)
- Java设计模式之模板方法设计模式(银行计息案例)
- 多线程之策略模式
- 文件上传的动作不能太俗,必须页面无刷新上传
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis使用与操作k-v数据
- Spring集成Hadoop和Hbase
- JVM系列之:JIT中的Virtual Call接口
- 重新构建711的Android项目(二),架构的选择与实现
- Android的配置文件操作封装,摒弃SharedPreference操作配置漫天乱飞
- java实现PBOC的TLV格式解析,超简单的解析(全互联网最简单)
- 链表总计
- Spring整合MongoDb
- 正确使用Qt多线程
- Spring与hibernate与mybatis
- scala 模式匹配的几个模式
- Spring Security 认证
- Spring Security 简单配置用户存储
- 我的小工具-nodejs串口转TCP调试通信
- Spring Web Folw配置