如何同时接收字节和字符串数据?

问题描述 投票:1回答:1

是否可以在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)将校验和放在服务器端的某个文本文件中并用实际文件压缩,然后在客户端解压缩存档。

angular http angular-httpclient
1个回答
1
投票

Content-MD5标题是一个用于上传和下载的用途:https://tools.ietf.org/html/rfc1864

通常,标头用于与您的请求相关的少量元数据。如果您认为这种额外的安全性是有保证的,那么这是一个完全有效的标头用例。

© www.soinside.com 2019 - 2024. All rights reserved.