# @system.request (Upload and Download) The **system.request** module provides applications with basic upload and download capabilities. > **NOTE** > - The APIs of this module are deprecated since API version 9. You are advised to use [`@ohos.request`](js-apis-request.md) instead. > > - The initial APIs of this module are supported since API version 3. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ``` import request from '@system.request'; ``` ## request.upload upload(options: UploadRequestOptions): void Uploads a file. This API returns no value. **System capability**: SystemCapability.MiscServices.Upload **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | options | [UploadRequestOptions](#uploadrequestoptions) | Yes| Upload configurations.| **Example** ```js import request, { UploadRequestOptions } from '@system.request'; let uploadRequestOptions: UploadRequestOptions = { url: 'http://www.path.com', method: 'POST', files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }], data: [{ name: "name123", value: "123" }], success: (data: object) => { console.info(' upload success, code:' + JSON.stringify(data)); }, fail: (data:string, code:number) => { console.info(' upload fail data: ' + data + 'code: ' + code); }, complete: () => { console.info(' upload complete'); } } try { request.upload(uploadRequestOptions); console.info('upload start '); } catch (err) { console.info(' upload err:' + err); } ``` ## UploadRequestOptions **System capability**: SystemCapability.MiscServices.Upload | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | url | string | Yes| URL of the upload server.| | data | Array<[RequestData](#requestdata)> | No| Form data in the request body.| | files | Array<[RequestFile](#requestfile)> | Yes| List of files to upload, which is submitted through **multipart/form-data**.| | header | Object | No| Request header.| | method | string | No| Request method, which can be **'POST'** or **'PUT'**. The default value is **POST**.| | success | Function | No| Called when API call is successful.| | fail | Function | No| Called when API call has failed.| | complete | Function | No| Called when API call is complete.| **success parameter** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | [UploadResponse](#uploadresponse) | Yes| Information returned when the upload task is successful.| **fail parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | any | Yes| Header information returned when the upload task fails.| | code | number | Yes| HTTP status code returned when the upload task fails.| ## UploadResponse **System capability**: SystemCapability.MiscServices.Upload | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | code | number | Yes| HTTP status code returned by the server.| | data | string | Yes| Content returned by the server. The value type is determined by the type in the returned headers.| | headers | Object | Yes| Headers returned by the server.| ## RequestFile **System capability**: SystemCapability.MiscServices.Upload | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | filename | string | No| File name in the header when **multipart** is used.| | name | string | No| Name of a form item when **multipart** is used. The default value is **file**.| | uri | string | Yes| Local path for storing files.| | type | string | No| Type of the file content. By default, the type is obtained based on the extension of the file name or URI.| ## RequestData **System capability**: SystemCapability.MiscServices.Upload | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | name | string | Yes| Name of the form element.| | value | string | Yes| Value of the form element.| ## request.download download(options: DownloadRequestOptions): void Downloads a file. This API returns no value. **System capability**: SystemCapability.MiscServices.Download **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | options | [DownloadRequestOptions](#downloadrequestoptions) | Yes| Download configurations.| **Example** ```js import request, { DownloadRequestOptions } from '@system.request'; let downloadRequestOptions: DownloadRequestOptions = { url: 'http://www.path.com', filename: 'requestSystenTest', header: "", description: 'this is requeSystem download response', success: (data:object) => { console.info(' download success, code:' + JSON.stringify(data)); }, fail: (data:string, code:number) => { console.info(' download fail data: ' + data + 'code: ' + code); }, complete: () => { console.info(' download complete'); } } try { request.download(downloadRequestOptions); console.info('download start '); } catch(err) { console.info(' download err:' + err); } ``` ## DownloadRequestOptions **System capability**: SystemCapability.MiscServices.Download | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | url | string | Yes| Resource URL.| | filename | string | No| Name of the file to download. The value is obtained from the current request or resource URL by default.| | header | Object | No| Request header.| | description | string | No| Download description. The default value is the file name.| | success | Function | No| Called when API call is successful.| | fail | Function | No| Called when API call has failed.| | complete | Function | No| Called when API call is complete.| **success parameter** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | [DownloadResponse](#downloadresponse) | Yes| Information returned when the download task is successful.| **fail parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | any | Yes| Header information returned when the download task fails.| | code | number | Yes| HTTP status code returned when the download task fails.| ## DownloadResponse **System capability**: SystemCapability.MiscServices.Download | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | token | string | Yes| Download token, which is used to obtain the download status| ## request.onDownloadComplete onDownloadComplete(options: OnDownloadCompleteOptions): void Listens for download task status. This API returns no value. **System capability**: SystemCapability.MiscServices.Download **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | options | [OnDownloadCompleteOptions](#ondownloadcompleteoptions) | Yes| Configurations of the download task.| **Example** ```js import request, { OnDownloadCompleteOptions } from '@system.request'; let onDownloadCompleteOptions: OnDownloadCompleteOptions = { token: 'token-index', success: (data:object) => { console.info(' download success, code:' + JSON.stringify(data)); }, fail: (data:string, code:number) => { console.info(' download fail data: ' + data + 'code: ' + code); }, complete: () => { console.info(' download complete'); } } request.onDownloadComplete(onDownloadCompleteOptions); ``` ## OnDownloadCompleteOptions **System capability**: SystemCapability.MiscServices.Download | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | token | string | Yes| Result token returned by the download API.| | success | Function | No| Called when API call is successful.| | fail | Function | No| Called when API call has failed.| | complete | Function | No| Called when API call is complete.| **success parameter** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | [OnDownloadCompleteResponse](#ondownloadcompleteresponse) | Yes| Information returned when the download task is successful.| **fail parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | data | any | Yes| Header information returned when the download task fails.| | code | number | Yes| HTTP status code returned when the download task fails.| ## OnDownloadCompleteResponse **System capability**: SystemCapability.MiscServices.Download | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | uri | string | Yes| URI of the download file.|