微信小程序接口公测也有段时间叻但是里面的坑踩了一个又一个,心也是够累的本文说说关于 wx.request 和 wx.uploadFile 对请求响应的不同表现。(注:该坑直到文章发布的那天还存在)
使鼡 wx.request 发出请求在对接口的响应做处理时,官方提供了三个回调函数分别是 success,failcomplete,看了官方文档其实也很清晰什么时候用什么回调,在這里也不多赘述了
使用 wx.uploadFile 可以上传文件,并可以携带一些额外的信息在对接口的响应做处理时,和 wx.request 一样也提供了同样的三个回调函数,在官方文档中其描述几乎是一样的(除了success)。
在对这两个接口有了一定的了解后说说这两个接口对请求的相应的不同表现。
wx.request 发出请求后无论请求接口返回的 HTTP 状态码(200也好,500也好)是什么都会进入 success 回调,和一般认为的 500 会进入 fail 回调不一样
(吐槽:对,接口是微信开發团队定的按照这个规律,我们只能遵循然后我就遵循这一规律继续写)
wx.uploadFile 发出请求后,如果请求接口返回的 HTTP 状态码为200时会进入 success 回调,而返回其他状态码(如400、405、500等)时会进入 fail 回调(黑人问号.jpg)。
虽然这不是啥大问题但在微信小程序接口的开发过程中,上面提到的問题还是会让人一下子摸不着路子个人觉得接口保持一致性还是很重要的,不过游戏的制定者不是我们只能希望越改越好吧。
感觉不坑对吧?下面其实才是坑人的地方
本文得出结果是在微信开发者工具上运行的结果,跟实际手机预览得出的结果又有出入(微信你搞什么鬼!!!)如果在手机上预览(我是在iOS上预览的)的话会变成—— wx.request 和 wx.uploadFile 的回调被调用的情况是一样的。