使用注意事项

服务器域名配置

每个智能小程序需要事先设置一个通讯域名,小程序可以跟指定的域名与进行网络通信。包括普通 HTTPS 请求(request)、上传文件(uploadFile)、下载文件(downloadFile) 和 WebSocket 通信(connectSocket)。

配置流程

服务器域名请在 “智能小程序后台 -> 设置 -> 开发设置 -> 服务器域名” 中进行配置,配置时需要注意:

  • 域名只支持 https(request、uploadFile、downloadFile)和 wss(socket)协议;

  • 域名不能使用 IP 地址、localhost 或端口号;

  • 域名必须经过 ICP 备案;

  • 出于安全考虑,openapi.baidu.com 不能被配置为服务器域名,相关 API 也不能在小程序内调用。开发者应将 App Secret 保存到自有后台服务器中,通过服务器使用 App Secret 获取 access_token ,并调用相关 API ;

  • 对于每个接口,分别可以配置最多 20 个域名。

在开发阶段,通过对开发者工具中“校验域名”的设置,可以实现线上相同体验。具体使用请参考校验域名

网络请求

超时时间

  • request 默认超时时间是 10s,最大超时时间是 60s ;

  • uploadFile、downloadFile、socket 默认超时时间和最大超时时间都是 60s ;

  • 超时时间可以在 app.json 中配置。

使用限制

  • request 最大并发数在 iOS 端为 6 ;Android 端同一域名下最大并发数为 5,且在 Android 端上同一个小程序最大并发数上限为 64 。

  • websocket 最大并发数 5 。

  • 网络请求的 header 中 referer 不可设置。

    • 其格式固定为{域名}/{appKey}/{version}/page-frame.html

    • 自基础库版本 V3.170.0 起,其中域名由原来的 https://smartapp.baidu.com 更改为 https://smartapps.cn

    • 其中 {appkey} 为小程序的 appkey 。

    • {version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本,正式版本号发布前在开发者工具中设置。

    图片

云端缓存服务

云端缓存服务是在小程序端和开发者服务端之间,搭建的缓存转发通道。swan.request 能力在未开启缓存通道时,请求由小程序端访问开发者服务端;在开启缓存服务后,请求由小程序端,经过缓存服务转发,若 swan.request 对应 url 未命中缓存服务,则请求会经缓存服务转发到开发者服务端,缓存服务缓存开发者服务端返回的 HTTP Response ,若命中缓存,则直接返回给小程序端。通过该通道,小程序端可以快速、稳定获取开发者服务端的数据。

云端缓存服务域名

缓存服务通过域名访问,域名地址为:https://storage.smartapps.cn

开发者 Server 域名

若开启缓存服务,开发者服务端的域名通过 swan.request 的 HTTP Header 中新定义的 key 来指定,其中 key 为:Developer-Server-Domain 。

云端缓存服务数据返回

swan.request 以 HTTP 方式访问开发者服务,若开启云端缓存服务,则缓存服务会将开发者服务返回的数据进行一次封装。封装之后的 HTTP Response Body 包括以下几个字段:errno、errmsg、data、header ,其中 errno、errmsg 为缓存服务返回的错误码和错误信息;header 为开发者服务返回的 HTTP Response Header ;data 字段为开发者服务返回的 HTTP Response Body 进行 base64 加密的字符串数据。

开启使用云端缓存服务

目前云端缓存服务尚未对所有小程序开发者开放,若开发者需要接入缓存服务,请联系:xutianwen@baidu.com 。