压缩请求正文以发送到 PHP 网络服务器
Compress request body to send to PHP webserver
我有一个 Angular 应用程序,它发出如下 post 请求:
async syncDataWithMaster(): Promise<AxiosResponse<any> | void> {
....
const jsonData = {
lastSyncTimeStamp,
deviceID,
userUUID,
lData,
aData,
aiData,
fData,
oData,
caData,
};
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded/json/gzip';
axios.defaults.headers.post.Authorization = token;
const url = this.endpoint + 'syncData.php';
return axios.post(url, jsonData, {
onUploadProgress: progressEvent => {console.log('uploading')},
onDownloadProgress: progressEvent => {console.log('downloading')}
}).then((response) => {
if (response.data.status == 'success') {
return response;
} else {
throw new Error('Could not authenticate user');
}
});
} catch (e) {
}
return;
}
通常这对我的大多数用户来说都很好,但有些用户的数据高达 15-30mb。我想知道是否可以压缩数据并将其发送到我的 PHP 网络服务器,然后可以对其进行解码以便上传更快?
或许可以考虑使用压缩库(取决于body的内容)。看起来 fflate 可以做到这一点。
我有一个 Angular 应用程序,它发出如下 post 请求:
async syncDataWithMaster(): Promise<AxiosResponse<any> | void> {
....
const jsonData = {
lastSyncTimeStamp,
deviceID,
userUUID,
lData,
aData,
aiData,
fData,
oData,
caData,
};
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded/json/gzip';
axios.defaults.headers.post.Authorization = token;
const url = this.endpoint + 'syncData.php';
return axios.post(url, jsonData, {
onUploadProgress: progressEvent => {console.log('uploading')},
onDownloadProgress: progressEvent => {console.log('downloading')}
}).then((response) => {
if (response.data.status == 'success') {
return response;
} else {
throw new Error('Could not authenticate user');
}
});
} catch (e) {
}
return;
}
通常这对我的大多数用户来说都很好,但有些用户的数据高达 15-30mb。我想知道是否可以压缩数据并将其发送到我的 PHP 网络服务器,然后可以对其进行解码以便上传更快?
或许可以考虑使用压缩库(取决于body的内容)。看起来 fflate 可以做到这一点。