Можно ли одновременно получать байтовые и строковые данные в ответе HTTP?Я не могу смешать два слова в json, но у вас есть идея:
private async getFile(): Promise<{ data: Blob, checksum: string }> {
return this.http.get('some url/getfile...', {
'headers': accessToken
}).pipe(timeout(10000)).toPromise().then(res => {
if (res['status'] === 200 && res['body']) {
return {
data: res['body']['data'],
checksum: res['body']['checksum']
};
}
return undefined;
}).catch(() => undefined);
}
Как правильно?
Мои идеи:
Должен ли сервер поместить контрольную сумму в заголовок ответа?
Или он также должен отправлять контрольную сумму в байтах?Если да, то как отделить его от фактических данных?
Или что, если бы я объединил их в одном потоке байтов и, например, если для создания контрольной суммы использовался md5, я бы знал, что первое (илипоследнее) 128 бит (= 16 байт?) - это контрольная сумма, остальное - фактические данные.
Чего я не хочу, так это (1) сделать это с помощью отдельных запросов (2) поместить контрольную сумму вкакой-нибудь текстовый файл на стороне сервера и заархивируйте его вместе с реальным файлом, затем разархивируйте архив на стороне клиента.