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.Upload73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci  | 名称 | 类型 | 必填 | 说明 |
76e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- |
77e41f4b71Sopenharmony_ci  | url | string | 是 | 上传服务器地址。 |
78e41f4b71Sopenharmony_ci  | data | Array&lt;[RequestData](#requestdatadeprecated)&gt; | 否 | 请求的表单数据。 |
79e41f4b71Sopenharmony_ci  | files | Array&lt;[RequestFile](#requestfiledeprecated)&gt; | 是 | 待上传文件列表。请使用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.Upload102e41f4b71Sopenharmony_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.Upload113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci  | 名称 | 类型 | 必填 | 说明 |
115e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- |
116e41f4b71Sopenharmony_ci  | filename | string | 否 | multipart&nbsp;提交时,请求头中的文件名。 |
117e41f4b71Sopenharmony_ci  | name | string | 否 | multipart&nbsp;提交时,表单项目的名称,缺省为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.Upload125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci  | 名称 | 类型 | 必填 | 说明 |
127e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- |
128e41f4b71Sopenharmony_ci  | name | string | 是 | 表示form&nbsp;元素的名称。 |
129e41f4b71Sopenharmony_ci  | value | string | 是 | 表示form&nbsp;元素的值。 |
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.Download180e41f4b71Sopenharmony_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.Download205e41f4b71Sopenharmony_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.Download250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci  | 名称 | 类型 | 必填 | 说明 |
252e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- |
253e41f4b71Sopenharmony_ci  | token | string | 是 | download&nbsp;接口返回的结果&nbsp;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.Download273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci  | 名称 | 类型 | 必填 | 说明 |
275e41f4b71Sopenharmony_ci  | -------- | -------- | -------- | -------- |
276e41f4b71Sopenharmony_ci  | uri | string | 是 | 表示下载文件的uri。 |