提交 b3871db0 编写于 作者: study夏羽's avatar study夏羽

docs: api/request.md remove mp

上级 6d8517ca
#### UDP 通信
仅微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/network/udp/wx.createUDPSocket.html)
#### mDNS 服务
- 微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.stopLocalServiceDiscovery.html)
- App端可在插件市场搜索相关插件[mDNS](https://ext.dcloud.net.cn/search?q=mdns)
......@@ -2,7 +2,6 @@
将本地资源上传到开发者服务器,客户端发起一个 ``POST`` 请求,其中 ``content-type````multipart/form-data``
如页面通过 [uni.chooseImage](api/media/image?id=chooseimage) 等接口获取到一个本地资源的临时文件路径后,可通过此接口将本地资源上传到指定服务器。另外选择和上传非图像、视频文件参考:[https://ask.dcloud.net.cn/article/35547](https://ask.dcloud.net.cn/article/35547)
> 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。
**推荐开发者上传到uniCloud,uniCloud提供了免费CDN和更好的易用性,包括安全的cdn直传。**
- uniCloud的上传API:[https://uniapp.dcloud.io/uniCloud/storage?id=uploadfile](https://uniapp.dcloud.io/uniCloud/storage?id=uploadfile)
......@@ -14,7 +13,6 @@
|:-|:-|:-|:-|:-|
|url|String|是|开发者服务器 url||
|files|Array|否|需要上传的文件列表。**使用 files 时,filePath 和 name 不生效。**|App、H5( 2.6.15+)|
|fileType|String|见平台差异说明|文件类型,image/video/audio|仅支付宝小程序,且必填。|
|file|File|否|要上传的文件对象。|仅H5(2.6.15+)支持|
|filePath|String|是|要上传文件资源的路径。||
|name|String|是|文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容||
......@@ -31,7 +29,7 @@
- hello uni-app中的客服反馈,支持多图上传。[uni-app插件市场](https://ext.dcloud.net.cn/)中也有多个封装的组件。
- App平台选择和上传非图像、视频文件,参考[https://ask.dcloud.net.cn/article/35547](https://ask.dcloud.net.cn/article/35547)
- 网络请求的 ``超时时间`` 可以统一在 ``manifest.json`` 中配置 [networkTimeout](/collocation/manifest?id=networktimeout)
- 支付宝小程序开发工具上传文件返回的http状态码为字符串形式,支付宝小程序真机返回的状态码为数字形式
**files参数说明**
......@@ -97,9 +95,7 @@ uploadTask.abort();
|:-|:-|:-|
|abort||中断上传任务|
|onProgressUpdate|callback|监听上传进度变化|
|onHeadersReceived|callback|监听 HTTP Response Header 事件。会比请求完成事件更早,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/UploadTask.onHeadersReceived.html)|
|offProgressUpdate|callback|取消监听上传进度变化事件,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/UploadTask.offProgressUpdate.html)|
|offHeadersReceived|callback|取消监听 HTTP Response Header 事件,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/UploadTask.offHeadersReceived.html)|
**onProgressUpdate 返回参数说明**
......@@ -144,7 +140,6 @@ uni.chooseImage({
### uni.downloadFile(OBJECT)
下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
> 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。在h5上是跨域的,用户需要处理好跨域问题。
**OBJECT 参数说明**
......@@ -156,7 +151,7 @@ uni.chooseImage({
|success|Function|否|下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'}| |
|fail|Function|否|接口调用失败的回调函数| |
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)| |
|filePath|string|否|指定文件下载后存储的路径 (本地路径)|微信小程序(IOS小程序保存到相册需要添加此字段才可以正常保存)|
**注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 [uni.saveFile](/api/file/file?id=savefile),才能在应用下次启动时访问得到。**
......@@ -205,9 +200,6 @@ downloadTask.abort();
|:-|:-|:-|:-|
|abort||中断下载任务|*|
|onProgressUpdate|callback|监听下载进度变化|*|
|onHeadersReceived|callback|监听 HTTP Response Header 事件,会比请求完成事件更早,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/DownloadTask.onHeadersReceived.html)| |
|offProgressUpdate|callback|取消监听下载进度变化事件,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/DownloadTask.offProgressUpdate.html)|
|offHeadersReceived|callback|取消监听 HTTP Response Header 事件,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/DownloadTask.offHeadersReceived.html)| |
**onProgressUpdate 返回参数说明**
......
### uni.request(OBJECT)
发起网络请求。
> 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。
**OBJECT 参数说明**
......@@ -11,9 +10,9 @@
|data|Object/String/ArrayBuffer|否||请求的参数|App(自定义组件编译模式)不支持ArrayBuffer类型|
|header|Object|否||设置请求的 header,header 中不能设置 Referer。|App、H5端会自动带上cookie,且H5端不可手动修改|
|method|String|否|GET|有效值详见下方说明||
|timeout|Number|否|60000|超时时间,单位 ms|H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序|
|timeout|Number|否|60000|超时时间,单位 ms|H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)|
|dataType|String|否|json |如果设为 json,会尝试对返回的数据做一次 JSON.parse||
|responseType|String|否|text |设置响应的数据类型。合法值:text、arraybuffer|支付宝小程序不支持|
|responseType|String|否|text |设置响应的数据类型。合法值:text、arraybuffer||
|sslVerify|Boolean|否|true|验证 ssl 证书|仅App安卓端支持(HBuilderX 2.3.3+)|
|withCredentials|Boolean|否|false|跨域请求时是否携带凭证(cookies)|仅H5支持(HBuilderX 2.6.15+)|
|firstIpv4|Boolean|否|false|DNS解析时优先使用ipv4|仅 App-Android 支持 (HBuilderX 2.8.0+)|
......@@ -25,16 +24,16 @@
必须大写,有效值在不同平台差异说明不同。
|method|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|GET|√|√|√|√|√|√|
|POST|√|√|√|√|√|√|
|PUT|√|√|√|x|√|√|
|DELETE|√|√|√|x|√|x|
|CONNECT|x|√|√|x|x|x|
|HEAD|x|√|√|x|√|x|
|OPTIONS|√|√|√|x|√|x|
|TRACE|x|√|√|x|x|x|
|method|App|H5|
|:-:|:-:|:-:|
|GET|√|√|
|POST|√|√|
|PUT|√|√|
|DELETE|√|√|
|CONNECT|x|√|
|HEAD|x|√|
|OPTIONS|√|√|
|TRACE|x|√|
**success 返回参数说明**
......@@ -92,8 +91,7 @@ requestTask.abort();
|方法|参数|说明|
|:-|:-|:-|
|abort||中断请求任务|
|offHeadersReceived||取消监听 HTTP Response Header 事件,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.offHeadersReceived.html)|
|onHeadersReceived||监听 HTTP Response Header 事件。会比请求完成事件更早,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.onHeadersReceived.html)|
**示例**
......@@ -116,11 +114,8 @@ requestTask.abort();
**Tips**
- 请求的 ``header````content-type`` 默认为 ``application/json``
- 避免在 ``header`` 中使用中文,或者使用 encodeURIComponent 进行编码,否则在百度小程序报错。(来自:[快狗打车前端团队](https://juejin.im/user/2612095359650712)
- 网络请求的 ``超时时间`` 可以统一在 ``manifest.json`` 中配置 [networkTimeout](/collocation/manifest?id=networktimeout)
- H5 端本地调试需注意跨域问题,参考:[调试跨域问题解决方案](https://ask.dcloud.net.cn/article/35267)
- 注意由于百度小程序iOS客户端,请求失败时会进入fail回调,需要针对百度增加相应的处理以解决该问题。
- 注意小程序端不支持自动保持 cookie,服务器应避免验证 cookie。如果服务器无法修改,也可以使用一些模拟手段,比如这样的工具[https://github.com/charleslo1/weapp-cookie](https://github.com/charleslo1/weapp-cookie) 可以请求时带上 cookie 并将响应的 cookie 保存在本地。
- H5端 cookie 受跨域限制(和平时开发网站时一样),旧版的 uni.request 未支持 withCredentials 配置,可以直接使用 xhr 对象或者其他类库。
- 根据 W3C 规范,H5 端无法获取 response header 中 Set-Cookie、Set-Cookie2 这2个字段,对于跨域请求,允许获取的 response header 字段只限于“simple response header”和“Access-Control-Expose-Headers”([详情](https://www.w3.org/TR/cors/#access-control-allow-credentials-response-header)
- [uni-app 插件市场](https://ext.dcloud.net.cn/search?q=%E6%8B%A6%E6%88%AA%E5%99%A8)有flyio、axios等三方封装的拦截器可用
......
**SocketTask**[uni.connectSocket()](/api/request/websocket?id=connectsocket) 接口创建。
**平台差异说明**
支付宝小程序、字节跳动小程序,没有明确的文档来具体说明这个对象,而是指向了 [Web Websocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 对象。
### SocketTask.onMessage(CALLBACK)
监听 WebSocket 接受到服务器的消息事件
......
### uni.connectSocket(OBJECT)
创建一个 [WebSocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 连接。
> 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。
**OBJECT 参数说明**
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|url|String|是|服务器接口地址|小程序中必须是 `wss://` 协议|
|header|Object|否|HTTP Header , header 中不能设置 Referer|小程序、App 2.9.6+|
|method|String|否|默认是GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT|仅微信小程序支持|
|protocols|Array<String>|否|子协议数组|App、H5、微信小程序、百度小程序、字节跳动小程序|
|url|String|是|服务器接口地址||
|header|Object|否|HTTP Header , header 中不能设置 Referer|App 2.9.6+|
|protocols|Array<String>|否|子协议数组|App、H5|
|success|Function|否|接口调用成功的回调函数||
|fail|Function|否|接口调用失败的回调函数||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)| |
......@@ -51,10 +49,7 @@ var socketTask = uni.connectSocket({
- 网络请求的 ``超时时间`` 可以统一在 ``manifest.json`` 中配置 [networkTimeout](/collocation/manifest?id=networktimeout)
- App平台,2.2.6以下的版本,不支持 ``ArrayBuffer`` 类型的数据收发。老版本不愿升级也可以使用 [plus-websocket插件](https://ext.dcloud.net.cn/plugin?id=647) 插件替代。
- App平台自定义组件模式下,以及支付宝小程序下,所有 `vue` 页面只能使用一个 `websocket` 连接。App下可以使用 [plus-websocket](https://ext.dcloud.net.cn/plugin?id=647) 插件替代实现多链接。App平台,2.2.6+起支持多个socket链接,数量没有限制。
- 微信小程序平台1.7.0 及以上版本,最多可以同时存在5个WebSocket 连接。老版本只支持一个socket连接
- 百度小程序平台自基础库版本 1.9.4 及以后支持多个socket连接。老版本只支持一个socket连接
- QQ小程序平台最多支持同时存在5个socket链接
- App平台自定义组件模式下,所有 `vue` 页面只能使用一个 `websocket` 连接。App下可以使用 [plus-websocket](https://ext.dcloud.net.cn/plugin?id=647) 插件替代实现多链接。App平台,2.2.6+起支持多个socket链接,数量没有限制。
### uni.onSocketOpen(CALLBACK)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册