1e41f4b71Sopenharmony_ci# @system.request (上传下载) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_cisystem.request部件主要给应用提供上传下载文件的基础能力。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> - 从API Version 9开始所有接口不再维护,推荐使用新接口[`@ohos.request`](js-apis-request.md)。 7e41f4b71Sopenharmony_ci> 8e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## 导入模块 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci``` 15e41f4b71Sopenharmony_ciimport request from '@system.request'; 16e41f4b71Sopenharmony_ci``` 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci## request.upload<sup>(deprecated)</sup> 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ciupload(options: UploadRequestOptions): void 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci上传文件,无返回值。 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci**参数:** 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 29e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 30e41f4b71Sopenharmony_ci | options | [UploadRequestOptions](#uploadrequestoptionsdeprecated) | 是 | 上传的配置信息。 | 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci**示例:** 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci ```js 35e41f4b71Sopenharmony_ci import request, { UploadRequestOptions } from '@system.request'; 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci let uploadRequestOptions: UploadRequestOptions = { 38e41f4b71Sopenharmony_ci url: 'http://www.path.com', 39e41f4b71Sopenharmony_ci method: 'POST', 40e41f4b71Sopenharmony_ci files: [{ 41e41f4b71Sopenharmony_ci filename: "test", 42e41f4b71Sopenharmony_ci name: "test", 43e41f4b71Sopenharmony_ci uri: "internal://cache/test.jpg", 44e41f4b71Sopenharmony_ci type: "jpg" 45e41f4b71Sopenharmony_ci }], 46e41f4b71Sopenharmony_ci data: [{ 47e41f4b71Sopenharmony_ci name: "name123", 48e41f4b71Sopenharmony_ci value: "123" 49e41f4b71Sopenharmony_ci }], 50e41f4b71Sopenharmony_ci success: (data: object) => { 51e41f4b71Sopenharmony_ci console.info(' upload success, code:' + JSON.stringify(data)); 52e41f4b71Sopenharmony_ci }, 53e41f4b71Sopenharmony_ci fail: (data:string, code:number) => { 54e41f4b71Sopenharmony_ci console.info(' upload fail data: ' + data + 'code: ' + code); 55e41f4b71Sopenharmony_ci }, 56e41f4b71Sopenharmony_ci complete: () => { 57e41f4b71Sopenharmony_ci console.info(' upload complete'); 58e41f4b71Sopenharmony_ci } 59e41f4b71Sopenharmony_ci } 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci try { 62e41f4b71Sopenharmony_ci request.upload(uploadRequestOptions); 63e41f4b71Sopenharmony_ci console.info('upload start '); 64e41f4b71Sopenharmony_ci } catch (err) { 65e41f4b71Sopenharmony_ci console.info(' upload err:' + err); 66e41f4b71Sopenharmony_ci } 67e41f4b71Sopenharmony_ci ``` 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci## UploadRequestOptions<sup>(deprecated)</sup> 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 76e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 77e41f4b71Sopenharmony_ci | url | string | 是 | 上传服务器地址。 | 78e41f4b71Sopenharmony_ci | data | Array<[RequestData](#requestdatadeprecated)> | 否 | 请求的表单数据。 | 79e41f4b71Sopenharmony_ci | files | Array<[RequestFile](#requestfiledeprecated)> | 是 | 待上传文件列表。请使用multipart/form-data进行提交。 | 80e41f4b71Sopenharmony_ci | header | Object | 否 | 请求头。 | 81e41f4b71Sopenharmony_ci | method | string | 否 | 请求方法:POST、PUT。缺省POST。 | 82e41f4b71Sopenharmony_ci | success | Function | 否 | 接口调用成功的回调函数。 | 83e41f4b71Sopenharmony_ci | fail | Function | 否 | 接口调用失败的回调函数。 | 84e41f4b71Sopenharmony_ci | complete | Function | 否 | 接口调用结束的回调函数。 | 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**success参数:** 87e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 88e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 89e41f4b71Sopenharmony_ci | data | [UploadResponse](#uploadresponsedeprecated) | 是 | 上传任务成功返回信息。 | 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci**fail参数:** 92e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 93e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 94e41f4b71Sopenharmony_ci | data | any | 是 | 上传任务失败返回header信息。 | 95e41f4b71Sopenharmony_ci | code | number | 是 | 上传任务失败返回HTTP状态码。 | 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci## UploadResponse<sup>(deprecated)</sup> 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 104e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 105e41f4b71Sopenharmony_ci | code | number | 是 | 服务器返回的HTTP状态码。 | 106e41f4b71Sopenharmony_ci | data | string | 是 | 服务器返回的内容。根据返回头内容中的type决定该值的类型。 | 107e41f4b71Sopenharmony_ci | headers | Object | 是 | 服务器返回的返回头内容。 | 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci## RequestFile<sup>(deprecated)</sup> 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 115e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 116e41f4b71Sopenharmony_ci | filename | string | 否 | multipart 提交时,请求头中的文件名。 | 117e41f4b71Sopenharmony_ci | name | string | 否 | multipart 提交时,表单项目的名称,缺省为file。 | 118e41f4b71Sopenharmony_ci | uri | string | 是 | 文件的本地存储路径。 | 119e41f4b71Sopenharmony_ci | type | string | 否 | 文件的内容类型,默认根据文件名或路径的后缀获取。 | 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci## RequestData<sup>(deprecated)</sup> 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MiscServices.Upload。 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 127e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 128e41f4b71Sopenharmony_ci | name | string | 是 | 表示form 元素的名称。 | 129e41f4b71Sopenharmony_ci | value | string | 是 | 表示form 元素的值。 | 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci## request.download<sup>(deprecated)</sup> 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_cidownload(options: DownloadRequestOptions): void 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci下载文件,无返回值。 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci**参数:** 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 144e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 145e41f4b71Sopenharmony_ci | options | [DownloadRequestOptions](#downloadrequestoptionsdeprecated) | 是 | 下载的配置信息。 | 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci**示例:** 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci ```js 150e41f4b71Sopenharmony_ci import request, { DownloadRequestOptions } from '@system.request'; 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci let downloadRequestOptions: DownloadRequestOptions = { 153e41f4b71Sopenharmony_ci url: 'http://www.path.com', 154e41f4b71Sopenharmony_ci filename: 'requestSystenTest', 155e41f4b71Sopenharmony_ci header: "", 156e41f4b71Sopenharmony_ci description: 'this is requeSystem download response', 157e41f4b71Sopenharmony_ci success: (data:object) => { 158e41f4b71Sopenharmony_ci console.info(' download success, code:' + JSON.stringify(data)); 159e41f4b71Sopenharmony_ci }, 160e41f4b71Sopenharmony_ci fail: (data:string, code:number) => { 161e41f4b71Sopenharmony_ci console.info(' download fail data: ' + data + 'code: ' + code); 162e41f4b71Sopenharmony_ci }, 163e41f4b71Sopenharmony_ci complete: () => { 164e41f4b71Sopenharmony_ci console.info(' download complete'); 165e41f4b71Sopenharmony_ci } 166e41f4b71Sopenharmony_ci } 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_ci try { 169e41f4b71Sopenharmony_ci request.download(downloadRequestOptions); 170e41f4b71Sopenharmony_ci console.info('download start '); 171e41f4b71Sopenharmony_ci } catch(err) { 172e41f4b71Sopenharmony_ci console.info(' download err:' + err); 173e41f4b71Sopenharmony_ci } 174e41f4b71Sopenharmony_ci ``` 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci## DownloadRequestOptions<sup>(deprecated)</sup> 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 182e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 183e41f4b71Sopenharmony_ci | url | string | 是 | 资源地址。 | 184e41f4b71Sopenharmony_ci | filename | string | 否 | 本次下载文件的名称。默认从本次请求或资源地址中获取。 | 185e41f4b71Sopenharmony_ci | header | Object | 否 | 请求头。 | 186e41f4b71Sopenharmony_ci | description | string | 否 | 资源地址的下载描述,默认为文件名称。 | 187e41f4b71Sopenharmony_ci | success | Function | 否 | 接口调用成功的回调函数。 | 188e41f4b71Sopenharmony_ci | fail | Function | 否 | 接口调用失败的回调函数。 | 189e41f4b71Sopenharmony_ci | complete | Function | 否 | 接口调用结束的回调函数。 | 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci**success参数:** 192e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 193e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 194e41f4b71Sopenharmony_ci | data | [DownloadResponse](#downloadresponsedeprecated) | 是 | 下载任务成功返回信息。 | 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci**fail参数:** 197e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 198e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 199e41f4b71Sopenharmony_ci | data | any | 是 | 下载任务失败返回header信息。 | 200e41f4b71Sopenharmony_ci | code | number | 是 | 下载任务失败返回HTTP状态码。 | 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci## DownloadResponse<sup>(deprecated)</sup> 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 207e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 208e41f4b71Sopenharmony_ci | token | string | 是 | 表示下载的token,获取下载状态的依据。 | 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci## request.onDownloadComplete<sup>(deprecated)</sup> 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_cionDownloadComplete(options: OnDownloadCompleteOptions): void 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci获取下载任务状态,无返回值。 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci**参数:** 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 222e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 223e41f4b71Sopenharmony_ci | options | [OnDownloadCompleteOptions](#ondownloadcompleteoptionsdeprecated) | 是 | 监听下载任务的配置信息。 | 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci**示例:** 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci ```js 228e41f4b71Sopenharmony_ci import request, { OnDownloadCompleteOptions } from '@system.request'; 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci let onDownloadCompleteOptions: OnDownloadCompleteOptions = { 231e41f4b71Sopenharmony_ci token: 'token-index', 232e41f4b71Sopenharmony_ci success: (data:object) => { 233e41f4b71Sopenharmony_ci console.info(' download success, code:' + JSON.stringify(data)); 234e41f4b71Sopenharmony_ci }, 235e41f4b71Sopenharmony_ci fail: (data:string, code:number) => { 236e41f4b71Sopenharmony_ci console.info(' download fail data: ' + data + 'code: ' + code); 237e41f4b71Sopenharmony_ci }, 238e41f4b71Sopenharmony_ci complete: () => { 239e41f4b71Sopenharmony_ci console.info(' download complete'); 240e41f4b71Sopenharmony_ci } 241e41f4b71Sopenharmony_ci } 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci request.onDownloadComplete(onDownloadCompleteOptions); 244e41f4b71Sopenharmony_ci ``` 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci## OnDownloadCompleteOptions<sup>(deprecated)</sup> 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 252e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 253e41f4b71Sopenharmony_ci | token | string | 是 | download 接口返回的结果 token。 | 254e41f4b71Sopenharmony_ci | success | Function | 否 | 接口调用成功的回调函数。 | 255e41f4b71Sopenharmony_ci | fail | Function | 否 | 接口调用失败的回调函数。 | 256e41f4b71Sopenharmony_ci | complete | Function | 否 | 接口调用结束的回调函数。 | 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_ci**success参数:** 259e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 260e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 261e41f4b71Sopenharmony_ci | data | [OnDownloadCompleteResponse](#ondownloadcompleteresponsedeprecated) | 是 | 下载任务成功返回信息。 | 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci**fail参数:** 264e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 265e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 266e41f4b71Sopenharmony_ci | data | any | 是 | 下载任务失败返回header信息。 | 267e41f4b71Sopenharmony_ci | code | number | 是 | 下载任务失败返回HTTP状态码。 | 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci 270e41f4b71Sopenharmony_ci## OnDownloadCompleteResponse<sup>(deprecated)</sup> 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 273e41f4b71Sopenharmony_ci 274e41f4b71Sopenharmony_ci | 名称 | 类型 | 必填 | 说明 | 275e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 276e41f4b71Sopenharmony_ci | uri | string | 是 | 表示下载文件的uri。 |