前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发 | 网络接口全攻略!这些技巧,让你的小程序永不「失联」

开发 | 网络接口全攻略!这些技巧,让你的小程序永不「失联」

作者头像
知晓君
发布2018-07-27 16:11:21
4900
发布2018-07-27 16:11:21
举报
文章被收录于专栏:知晓程序
作者:OkayChen

知晓程序注:

几乎所有的小程序,都会用到网络接口。

微信为小程序提供了 4 个接口,供小程序访问网络。如果你刚开始接触小程序开发,也许会对小程序网络访问产生不少的疑问。

今天知晓程序(微信号 zxcx0101)推荐的文章,就来为大家总结,有关小程序网络接口开发过程中所遇到的问题,希望可以帮你解决一些疑问。

关注「知晓程序」微信公众号,回复「开发」,获取小程序开发全套经验。

写在前面

之前,我负责某个小程序项目的大部分前端后台接口的对接,然后学长帮我改了一些问题。总的来说,收获了不少吧!

现在,项目已经完成,还是要陆陆续续总结一下的,总结的过程也是对知识梳理和清晰的过程。这次,我们主要聊一下小程序前后端接口对接的一些事。

对于客户端与服务端接口的对接,微信小程序提供了 wx.request() 的 API 接口,完美地实现前端后台的对接

一个简单的栗子:

在控制台中,可以看到,我得到了我想要的接口中的数据:

但期间也遇到了几个问题,现在就来总结一下。

1. 网络请求与域名的合法性

微信小程序包括四种类型的网络请求:

  • 普通 HTTPS 请求(wx.request
  • 上传文件(wx.uploadFile
  • 下载文件(wx.downloadFile
  • WebSocket 通信(wx.connectSocket

大家可以根据实际需要,选择对应接口。

需要注意的是,调试时可能会出现「URL 域名不合法,请在后台配置后重试」的错误。这是因为小程序只允许与合法配置的域名,进行数据交互。

进入微信公共平台,选择「设置」-「开发设置」,可以设置需要交互的域名。

2. 对于接口调用 HTTP 和 HTTPS 的问题

在之前来说,微信公共平台支持使用 HTTP 测试项目,但是正式发布需要使用 HTTPS 的域名,

但是前几天,微信公众平台发布了一则公告,应该是要「封杀」HTTP 方式调用了。

3. 关于 method 以及 data 数据

微信小程序多地方都严格区分大小写,所以要注意 method 的值需要为全大写,request 的默认的超时时间都是 60s

对于 data 数据,上次我们从接口中拿到的数据,是 JSON 格式的,最终发送给服务器的数据是 String 类型。如果传入的 data 不是 String 类型,会被转换成 String

文档中提供的转换规则如下:

  • 对于 header['content-type']application/json 的数据,会对数据进行 JSON 序列化
  • 对于 header['content-type']application/x-www-form-urlencoded 的数据,会将数据转换成 query string

这个工作在我们设置 header 头为 application/x-www-form-urlencoded 后,默认为我们进行。

4. 关于 GET 和 POST 请求

根据 HTTP 的规范,GET 方法用于信息获取,POST 表示需要修改服务器的资源的请求

对于小程序的 POST 请求,如果 'application/json' 用在 GET 请求中没有问题,但是用在 POST 请求中不好使了,这是因为 POST 请求的 content-type 默认为 'application/json'

如有需要,使用 POST 请求时,可考虑将 content-type 设置为 application/x-www-form-urlencoded

写在最后

总结了以上四个问题,应该是比较常见也是容易遇到的,欢迎补充和指正。

另外,在小程序文档中,API 模块还有一些需要注意的问题,开发时务必要注意。

原文地址: http://www.cnblogs.com/okaychen/p/7655601.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知晓程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档