如何同时接收字节和字符串数据?
How to receive byte and string data at the same time?
是否可以在 HTTP 响应中同时接收字节和字符串数据? A 不能将两者混合放在 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);
}
正确的方法是什么?
我的想法:
服务器是否应该将校验和放入响应中header?
或者,它是否也应该以字节形式发送校验和?如果是这样,如何将其与实际数据分开?
或者如果我将两者结合在一个字节流中,如果例如md5 用于生成校验和我知道第一个(或最后一个)128 位(= 16 字节?)是校验和,其余是实际数据。
我不想要的是 (1) 使用单独的请求来完成 (2) 将校验和放在服务器端的某个文本文件中并将其与实际文件一起压缩,然后在客户端解压缩存档边.
Content-MD5 header 是一个东西,在上传和下载中都用于此目的:https://www.rfc-editor.org/rfc/rfc1864
通常,headers 用于与您的请求相关的少量元数据。如果您认为这种额外的安全性是必要的,那么这是一个完全有效的 header 用例。
是否可以在 HTTP 响应中同时接收字节和字符串数据? A 不能将两者混合放在 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);
}
正确的方法是什么?
我的想法:
服务器是否应该将校验和放入响应中header?
或者,它是否也应该以字节形式发送校验和?如果是这样,如何将其与实际数据分开?
或者如果我将两者结合在一个字节流中,如果例如md5 用于生成校验和我知道第一个(或最后一个)128 位(= 16 字节?)是校验和,其余是实际数据。
我不想要的是 (1) 使用单独的请求来完成 (2) 将校验和放在服务器端的某个文本文件中并将其与实际文件一起压缩,然后在客户端解压缩存档边.
Content-MD5 header 是一个东西,在上传和下载中都用于此目的:https://www.rfc-editor.org/rfc/rfc1864
通常,headers 用于与您的请求相关的少量元数据。如果您认为这种额外的安全性是必要的,那么这是一个完全有效的 header 用例。