1# Upload and Download Subsystem ChangeLog
2
3Compared with OpenHarmony 3.2 Beta3, OpenHarmony 3.2.8.1 has the following changes in its upload and download subsystem:
4
5## cl.request.1 Changes of Error Code Definitions and Some API Names
6
7- The processing of the [upload and download error codes](https://gitee.com/openharmony/docs/blob/master/en/application-dev/reference/errorcodes/errorcode-request.md) is added to the upload and download APIs.
8- An error message is returned via **AsyncCallback** or the **error** object of **Promise**. An error message related to the parameter type or quantity is returned via an exception.
9- Some APIs need to be replaced with new APIs, and the parameters remain unchanged.
10
11**Change Impacts**
12
13The application developed based on earlier versions needs to adapt the method for returning API error information. Otherwise, the original service logic will be affected.
14
15**Key API/Component Changes**
16
17| Module        | Class                      | Method/Attribute/Enumeration/Constant                                         | Change Type|
18| -------------- | -------------------------- | ------------------------------------------------------------ | -------- |
19| ohos.request   | request                    | EXCEPTION_PERMISSION                                         | Added    |
20| ohos.request   | request                    | EXCEPTION_PARAMCHECK                                         | Added    |
21| ohos.request   | request                    | EXCEPTION_UNSUPPORTED                                        | Added    |
22| ohos.request   | request                    | EXCEPTION_FILEIO                                             | Added    |
23| ohos.request   | request                    | EXCEPTION_FILEPATH                                           | Added    |
24| ohos.request   | request                    | EXCEPTION_SERVICE                                            | Added    |
25| ohos.request   | request                    | EXCEPTION_OTHERS                                             | Added    |
26| ohos.request   | request                    | ERROR_OFFLINE                                                | Added    |
27| ohos.request   | request                    | ERROR_UNSUPPORTED_NETWORK_TYPE                               | Added    |
28| ohos.request   | request                    | function downloadFile(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void; | Added    |
29| ohos.request   | request                    | function downloadFile(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>; | Added    |
30| ohos.request   | request                    | function uploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void; | Added    |
31| ohos.request   | request                    | function uploadFile(context: BaseContext, config: UploadConfig): Promise<UploadTask>; | Added    |
32| ohos.request   | DownloadTask               | delete(callback: AsyncCallback<boolean>): void;              | Added    |
33| ohos.request   | DownloadTask               | delete(): Promise<boolean>;                                  | Added    |
34| ohos.request   | DownloadTask               | suspend(callback: AsyncCallback<boolean>): void;             | Added    |
35| ohos.request   | DownloadTask               | suspend(): Promise<boolean>;                                 | Added    |
36| ohos.request   | DownloadTask               | restore(callback: AsyncCallback<boolean>): void;             | Added    |
37| ohos.request   | DownloadTask               | restore(): Promise<boolean>;                                 | Added    |
38| ohos.request   | DownloadTask               | getTaskInfo(callback: AsyncCallback<DownloadInfo>): void;    | Added    |
39| ohos.request   | DownloadTask               | getTaskInfo(): Promise<DownloadInfo>;                        | Added    |
40| ohos.request   | DownloadTask               | getTaskMimeType(callback: AsyncCallback<string>): void;      | Added    |
41| ohos.request   | DownloadTask               | getTaskMimeType(): Promise<string>;                          | Added    |
42| ohos.request   | UploadTask                 | delete(callback: AsyncCallback<boolean>): void;              | Added    |
43| ohos.request   | UploadTask                 | delete(): Promise<boolean>;                                  | Added    |
44| ohos.request   | request                    | function download(config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void;<br>Substitute API: function downloadFile(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void;| Deprecated    |
45| ohos.request   | request                    | function download(config: DownloadConfig): Promise<DownloadTask>;<br>Substitute API: function downloadFile(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>; | Deprecated    |
46| ohos.request   | request                    | function download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void;<br>Substitute API: function downloadFile(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void; | Deprecated    |
47| ohos.request   | request                    | function download(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>;<br>Substitute API: function downloadFile(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>; | Deprecated    |
48| ohos.request   | request                    | function upload(config: UploadConfig, callback: AsyncCallback<UploadTask>): void;<br>Substitute API: function uploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void; | Deprecated    |
49| ohos.request   | request                    | function upload(config: UploadConfig): Promise<UploadTask>;<br>Substitute API: function uploadFile(context: BaseContext, config: UploadConfig): Promise<UploadTask>; | Deprecated    |
50| ohos.request   | request                    | function upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void;<br>Substitute API: function uploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void; | Deprecated    |
51| ohos.request   | request                    | function upload(context: BaseContext, config: UploadConfig): Promise<UploadTask>;<br>Substitute API: function uploadFile(context: BaseContext, config: UploadConfig): Promise<UploadTask>; | Deprecated    |
52| ohos.request   | DownloadTask               | remove(callback: AsyncCallback<boolean>): void;<br>Substitute API: delete(callback: AsyncCallback<boolean>): void | Deprecated    |
53| ohos.request   | DownloadTask               | remove(): Promise<boolean>;<br>Substitute API: delete(): Promise<boolean>; | Deprecated    |
54| ohos.request   | DownloadTask               | pause(callback: AsyncCallback<boolean>): void;<br>Substitute API: suspend(callback: AsyncCallback<boolean>): void; | Deprecated    |
55| ohos.request   | DownloadTask               | pause(): Promise<boolean>;<br>Substitute API: suspend(): Promise<boolean>; | Deprecated    |
56| ohos.request   | DownloadTask               | resume(callback: AsyncCallback<boolean>): void;<br>Substitute API: restore(callback: AsyncCallback<boolean>): void; | Deprecated    |
57| ohos.request   | DownloadTask               | resume(): Promise<boolean>;<br>Substitute API: restore(): Promise<boolean>; | Deprecated    |
58| ohos.request   | DownloadTask               | query(callback: AsyncCallback<DownloadInfo>): void;<br>Substitute API: getTaskInfo(callback: AsyncCallback<DownloadInfo>): void; | Deprecated    |
59| ohos.request   | DownloadTask               | query(): Promise<DownloadInfo>;<br>Substitute API: getTaskInfo(): Promise<DownloadInfo>; | Deprecated    |
60| ohos.request   | DownloadTask               | queryMimeType(callback: AsyncCallback<string>): void;<br>Substitute API: getTaskMimeType(callback: AsyncCallback<string>): void; | Deprecated    |
61| ohos.request   | DownloadTask               | queryMimeType(): Promise<string>;<br>Substitute API: getTaskMimeType(): Promise<string>; | Deprecated    |
62| ohos.request   | UploadTask                 | remove(callback: AsyncCallback<boolean>): void;<br>Substitute API: delete(callback: AsyncCallback<boolean>): void; | Deprecated    |
63| ohos.request   | UploadTask                 | remove(): Promise<boolean>;<br>Substitute API: delete(): Promise<boolean>; | Deprecated    |
64| system.request | UploadResponse             | code                                                         | Deprecated    |
65| system.request | UploadResponse             | data                                                         | Deprecated    |
66| system.request | UploadResponse             | headers                                                      | Deprecated    |
67| system.request | DownloadResponse           | token                                                        | Deprecated    |
68| system.request | OnDownloadCompleteResponse | uri                                                          | Deprecated    |
69| system.request | RequestFile                | filename                                                     | Deprecated    |
70| system.request | RequestFile                | name                                                         | Deprecated    |
71| system.request | RequestFile                | uri                                                          | Deprecated    |
72| system.request | RequestFile                | type                                                         | Deprecated    |
73| system.request | RequestData                | name                                                         | Deprecated    |
74| system.request | RequestData                | value                                                        | Deprecated    |
75| system.request | UploadRequestOptions       | url                                                          | Deprecated    |
76| system.request | UploadRequestOptions       | data                                                         | Deprecated    |
77| system.request | UploadRequestOptions       | files                                                        | Deprecated    |
78| system.request | UploadRequestOptions       | header                                                       | Deprecated    |
79| system.request | UploadRequestOptions       | description                                                  | Deprecated    |
80| system.request | UploadRequestOptions       | success                                                      | Deprecated    |
81| system.request | UploadRequestOptions       | fail                                                         | Deprecated    |
82| system.request | UploadRequestOptions       | complete                                                     | Deprecated    |
83| system.request | OnDownloadCompleteOptions  | token                                                        | Deprecated    |
84| system.request | OnDownloadCompleteOptions  | success                                                      | Deprecated    |
85| system.request | OnDownloadCompleteOptions  | fail                                                         | Deprecated    |
86| system.request | OnDownloadCompleteOptions  | complete                                                     | Deprecated    |
87| system.request | Request                    | static upload(options: UploadRequestOptions): void;          | Deprecated    |
88| system.request | Request                    | static download(options: DownloadRequestOptions): void;      | Deprecated    |
89| system.request | Request                    | static onDownloadComplete(options: OnDownloadCompleteOptions): void; | Deprecated    |
90
91
92**Adaptation Guide**
93
94The following uses **downloadFile** as an example to show how it is called in the new version:
95
96```ts
97try {
98    request.downloadFile(globalThis.abilityContext, { url: 'https://xxxx/xxxxx.hap',
99        filePath: 'xxx/xxxxx.hap'}, (err, data) => {
100        if (err) {
101            console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
102            return;
103        }
104    });
105} catch (err) {
106    console.log("downloadFile callback fail." + "errCode:" + err.code + ",errMessage:" + err.message);
107}
108```
109