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

作者: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

原文发布于微信公众号 - 知晓程序(zxcx0101)

原文发表时间:2017-10-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端开发

jsonp介绍与jsonp封装

6335
来自专栏流柯技术学院

Win Server 2003 10条小技巧

微软推出Windows Server 2003已经有一段时间了,但是,由于它是一个面向企业用户的服务器操作系统,所以,没有引起更多个人用户的注意。实际上,简单地...

2162
来自专栏about云

about云日志分析实战之清洗日志小实例2:导入日志清洗代码并打包

问题导读 1.通过什么菜单项可以导入源码? 2.打jar包需要哪些步骤? 3.如何找到jar生成路径? 上一篇: about云日志分析实战之清洗日志1:...

3616
来自专栏大前端开发

如何删除微信web开发者工具中失效项目?

我日常使用微信web开发者工具来学习和开发我们的微信小程序,在这过程中,我们可能会创建很多小程序项目,总会有时候,我需要删除我们不需要的项目,通常情况下,我们可...

1142
来自专栏企鹅号快讯

大型网站技术架构:Web 前端性能优化

浏览器访问渲染优化 减少 http 请求数 http 协议是无状态的应用层协议,每次 http 请求都会建立新的通信链路,并且在服务端,每个 http 连接都会...

2086
来自专栏BeJavaGod

SSO单点登录的发展由来以及实现原理

单点登录以及权限,在很早之前都有写过,不过都比较简单,今天就具体说一下,以及下一步要做的 1、web单系统应用 早期我们开发web应用都是所有的包放在一起打成一...

3764
来自专栏qqqqq

腾讯云弹性网卡绑定多IP利用外网访问教程

1.3K1
来自专栏搜云库

CentOs6.5 修改主机名

CentOs6.5 修改主机名 CentOs6.5 系统安装好后,都会有默认的主机名:localhost.localdomain,修改主机名步骤如下 1.修改n...

3997
来自专栏子勰随笔

iMac(OS X)不可或缺的套件管理器 —— Homebrew

1715
来自专栏程序员的碎碎念

git上传更新项目-错误总结

前些天做完项目一部分内容的时候,想git上传代码上去远程仓库里,却出现了不少git的错误提示信息。在这里总结一下吧: 一、正确的git上传更新项目步骤为:...

3203

扫码关注云+社区

领取腾讯云代金券