赞
踩
读者福利
========
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
由于篇幅过长,就不展示所有面试题了,想要完整面试题目的朋友(另有小编自己整理的2024大厂高频面试题及答案附赠)
在uniapp
中,使用uni.request()
向服务端接口发起请求后,返回值为:{"errMsg":"request:fail abort statusCode:-1"}
,因此,导致了后面的业务代码报错。
通过检查uni.request()
根据服务端接口需要的配置(如:url、data、header、method
等)都没有问题。
在以上前提下还出现这种问题,最有可能的原因:手机没有连网,或者看着连上了网但实际网络不可用,可以在手机浏览器中随便输入点文字搜一下测试看看,能不能搜到新内容。
仔细查看,这个{"errMsg":"request:fail abort statusCode:-1 未能找到使用指定主机名的服务器。(-1003)"}
返回值,其实并不是服务端返回来的,因为请求都完全没有到服务端。
通过对比前后版本差异,发现前期后台请求方式为http:IP
形式,当前后台请求方式为https:域名
形式。通过http:域名
形式检测,未发现以上现象。排除法怀疑问题出在ssl证书验证阶段。
但是andriod
不会出现以上问题,只有ios
才会出现以上问题。难道android
与ios
在校验证书方面存在差异?
通过抓包工具Stream分析发现,在出现网路连接问题时抓包信息如下:
抓包详情信息如下:
从网上看到如下解释,经过实践,发现问题解决了。
官方文档上说
uni.request
在content-type:application/json
时会尝试对data
进行序列化。手动将原本是json
的数据转成字符串传进去就可以了,希望官方可以对这一块进行优化吧。
通过WhireShark捕获网络层数据,发现TCP握手超时。
并在dmz区的服务器上捕获 netstat packets rejects in established connections because of timestamp
有这个错误。
通过系统参数优化可解决TCP握手超时问题。
在入口服务器打开编辑文件/etc/sysctl.conf
,加入以下内容:
net.ipv4.tcp_tw_reuse=0
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_fin_timeout=10
net.ipv4.ip_local_port_range=1024 65535
net.core.somaxconn=65535
vm.drop_caches=1
vm.swappiness=0
fs.file-max=10485760
然后执行 /sbin/sysctl -p
让参数生效。
针对手机没有连网的场景,在执行uni.request()
向服务端请求前,使用uni.getNetworkType()
和uni.onNetworkStatusChange()
对网络进行监听,如果监听到当前设备是处于无网络的状态时,就不执行uni.request()
请求,而是弹出一个弹框或者消息提示,提醒用户:“当前设备断网了,请检查网络后重试
”。
uni. onNetworkStatusChange
触发时机:在网络切换的时候执行,切换2G,3G,WiFi的时候会执行。
应用时机:一般都会放在 onShow
里面,实时监听网络的切换。当应用关闭后台的时候在 onHide
生命周期函数中执行 uni.offNetworkStatusChange()
关闭监听网络。
uni.getNetworkType
触发时机:在页面初始化的时候,或者是在方法执行的时候执行。
应用时机:可以再onShow
、onLoad
这样的生命周期里面来执行,也可以在点击事件中添加执行,属于即用即取的。
在使用uni.request
进行网络请求时,对入参data进行JSON.stringfy()序列化操作。
return new Promise((resolve, reject) => { uni.request({ url: curUrl, method: method || "POST", # 学习分享,共勉 题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心 **[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)** ![](https://img-blog.csdnimg.cn/img_convert/1279bd8b8373bffe60d48ffa4874a5ee.webp?x-oss-process=image/format,png) 前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)** [外链图片转存中...(img-2bze7szc-1715469798736)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。