05章 网络API《微信小程序开发零基础入门-第2版》 学号:小程序网络基础 02 发起请求 03 文件传输 01小程序网络基础 01小程序网络基础 小程序与服务端通信的架构也可以叫C/S架构,也就是客户端/服务端(/)架构,小程序与服务端的通信原理大致如图所示。 小程序/服务端架构 0101小程序网络基础 关于小程序向服务端发起的网络请求,请注意以下几点: 网络请求无法设置,其格式固定为;{}/{}/page-.html,其中{}为程序,{}为小程序版本号,版本号0表示开发版、试用版和评测版,版本号表示开发者工具,其余为正式版; 小程序进入后台(不是顶聊)后,5s内若未完成网络请求,则会回调错误信息; 返回前台前不会调用网络请求接口调用。 小程序/服务端架构 0101 小程序网络基础 返回值编码 小程序会自动过滤BOM头,建议服务端返回值使用UTF-8编码,对于非UTF-8编码,小程序会尝试转换,但有转换失败的可能性。
只要成功收到服务端响应,无论多少都会进入回调,请开发者根据业务逻辑判断返回值。 小程序/服务端架构 0101 小程序网络基础 关于JSON语法格式 小程序网络API在发起网络请求时,使用JSON格式的文本进行数据交换。JSON(tion)是基于JSON的一个子集,-,,是一种轻量级的数据交换格式。它使用了完全独立于语言的文本格式,便于人阅读和书写;但是它也使用了类似C语言家族(包括C、Java、、Perl等)的习惯,因此也易于机器解析和生成。这些特性让JSON成为一种理想的数据交换语言。 小程序/服务端架构 0101 小程序网络基础 关于JSON语法格式 JSON字符串通常有两种构造形式:一种是值的有序列表。 小程序/服务器架构 0101 小程序网络基础 关于JSON语法格式 1)“名称/值”对的集合 “名称/值”对的集合(name/)在不同的计算机语言中可以理解为:对象()、记录()、结构体()、字典()、哈希表()、键控列表()或关联数组()等。
小程序/服务端架构 0101 小程序网络基础 关于JSON语法格式 1)“名/值”对集合的名称可由开发者自定义,如 、 等;值为自定义名称对应的数据值,值的类型有6种: :对象,如{:'',:''}; :数组,如[1,2,3,4,5]。以上值类型可以嵌套,形成复合值。 小程序/服务端架构 01 01 小程序网络基础 关于JSON语法格式 1)“名/值”对集合 “名/值”对集合通常使用大括号来包含里面的所有内容。 示例格式如下: 小程序/服务端架构 01 名称1:值1,名称2:值2,01 小程序网络基础 关于JSON语法格式 1)“名/值”对的集合 例如: 小程序/服务端架构 01 单个名/值对 多个名/值对,x2'',x3 名/值对的嵌套组合'',x3y1:,y2:null,//如果要获取y1的值,写法为.x3.y1。 01 小程序网络基础 关于JSON语法格式 1)“名/值”对的集合 以微信用户信息数据为例,返回的JSON文本如下: 小程序/服务端架构 ‘张三’,小程序网络基础 有序值列表 有序值列表在大多数计算机语言中可以理解为:数组()。
有序值列表通常使用方括号把里面的内容全部括起来,示例格式如右侧所示,这里的值类型和前面“名称/值”对集中的值类型完全一致,就不再赘述了。 小程序/服务端架构 0101 小程序网络基础 值有序列表 例如: 小程序/服务端架构 01 数字值 布尔值 对象值 {:'','123',city'芜湖'},{:'lisi',:'456',city:''},{:'',:'789',city:''} //如果要获取第一个用户的城市,写成[0].city。 01 小程序网络基础 每个小程序在未指定域名的情况下进行网络通信前,须将域名地址添加到管理员后端白名单,跳过域名验证。 服务器域名配置 0201 小程序网络基础配置流程 小程序开发者登录mp..qq进入管理员后台,选择【设置】-【开发设置】-【服务器域名】添加或修改网络通信所需的服务器域名地址,如图。 服务器域名配置 0201 小程序网络基础配置流程 开发者可以填写自有的或者第三方的服务器域名地址,但配置时需要注意: 域名只支持(,,)和wss()协议; 域名不能使用IP地址或者; 域名必须是已经备案的ICP备案的; 出于安全考虑,api..qq不能配置为服务器域名,在小程序中无法调用相关API。

开发者应保存到后端服务器,通过服务器获取,并调用相关API;每种接口最多可以配置20个域名。配置完成后,登录小程序开发工具测试小程序未指定服务器域名地址之间的网络通讯。注意每月只能申请修改5次。 服务器域名配置 0201 小程序网络基础证书 需要注意的是,小程序必须使用请求,正式环境中不能使用普通的http请求,判断请求的依据是小程序会验证服务器域名使用的证书,如果验证失败,则无法成功发起请求。所以开发者如果选择自建服务器,需要自行在服务器上安装证书,如果选择第三方服务器,只需要确保其证书有效即可。 服务器域名配置 0201 小程序网络基础证书 小程序对证书有以下要求: 证书必须有效 证书必须是系统信任的。 部署SSL证书的网站域名必须与证书签发的域名一致。证书必须有效。iOS不支持自签名证书,iOS下的证书必须符合苹果App(ATS)的要求。TLS必须支持1.2以上版本,部分老机型暂不支持TLS 1.2,请确保服务器的TLS版本支持1.2及以下版本。部分CA可能不受操作系统信任(例如56/57内核配对、证书限制)。选择证书时请留意小程序及各系统相关通知。
服务器域名配置 02 01 小程序网络基础 证书 小程序对证书有以下要求: 证书必须是有效期 证书必须是系统信任的 部署SSL证书的网站域名必须与证书签发的域名相同 证书必须在有效期内 iOS不支持自签名证书 iOS下证书需符合苹果App(ATS)的要求 TLS必须支持1.2及以上版本,部分老机型暂不支持TLS 1.2,请确保服务器的TLS版本支持1.2及以下版本 部分CA可能不被操作系统信任(如56/57内核配对、证书限制等)。开发者在选择证书时需留意小程序及各类系统相关通知。 服务器域名配置 02 01 小程序网络基础 跳过域名验证 若开发者暂时无法注册有效域名,可以在开发测试时暂时跳过域名验证。 为此,在微信网页开发者工具中找到右上角的【详情】按钮,点击打开浮窗,然后勾选【不验证请求域名、web-view(业务域名)、TLS版本和证书】选项,如图。 服务器域名配置 02 01 小程序网络基础软件部署 如果开发者条件有限,可以暂时将PC部署为模拟服务器,用于开发测试。
小程序对于服务端软件和语言没有限制,用户可以根据实际情况选择、等任意服务端软件进行安装部署,后端开发选择PHP、Node.js、J2EE等任意语言。 临时服务器部署 03 01 小程序网络基础软件部署 初学者可以直接使用第三方免费套件,帮助我们快速搭建模拟的服务器环境,这里我们以V8.1软件包(包含/、php和)为例。部署步骤如下: (1)下载安装包(官网.xp)在PC上双击安装。 (2)完成后,启动/服务器,如图。 (3)在该目录下建立自定义目录,比如以后可以把PHP格式的接口文件放在这个目录下。 临时服务器部署 03 01 小程序网络基础软件部署 注:开发者也可以根据自己的使用习惯改为一键启动WNMP。当不需要时,开发者可以点击“停止”按钮终止服务器进程,恢复正常电脑状态。 临时服务器部署 03 01 小程序网络基础 网络请求服务器的目录为根目录,其网络地址为: 或 。开发者可以在根目录下自行创建目录和文件。例如在 中创建了一个test.php文件,则网络请求地址为: 临时服务器部署 03 01 小程序网络基础 网络请求PHP文件的返回语句为echo,例如: 这样小程序就会收到引号里的文本内容。开发者也可以直接用浏览器访问该地址,获取到的也是同样的文本内容,因此在开发前可以直接用浏览器测试PHP文件是否正确。 临时服务器部署03 ?php echo ‘网络请求成功!’;