Angular 将二进制数据从.net核心web api传输到typescript应用程序

Angular 将二进制数据从.net核心web api传输到typescript应用程序,angular,typescript,asp.net-core-2.0,binary-data,Angular,Typescript,Asp.net Core 2.0,Binary Data,我有.NETCore3.0WebAPI应用程序和Angular8客户端。到目前为止,我使用json序列化在它们之间传输了一些数据。但我想知道如何将字节数组从api传输到客户端 我发现现代流行的发送二进制文件的方式是使用IActionResult而不是HttpResponseMessage。所以在我的控制器中有这样的代码 [HttpGet("Get-octetstream/{id}")] public async Task<FileResult

我有.NETCore3.0WebAPI应用程序和Angular8客户端。到目前为止,我使用json序列化在它们之间传输了一些数据。但我想知道如何将字节数组从api传输到客户端

我发现现代流行的发送二进制文件的方式是使用IActionResult而不是HttpResponseMessage。所以在我的控制器中有这样的代码

       [HttpGet("Get-octetstream/{id}")]
       public async Task<FileResult> GetAsOctetStream(int id)
       {
           var bytes= await GetData(id);
           var stream = new MemoryStream(bytes);
           return File(stream, "application/octet-stream", $"{id}.bin");
       }
我得到一个错误:

ERROR Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":
{},"lazyUpdate":null},"status":200,"statusText":"OK","url":"http://localhost:11080/misc/
Get-octetstream/16588","ok":false,"name":"HttpErrorResponse","message":"Http failure during 
parsing for http://localhost:11080/misc/Get-vxsor-octetstream/16588","error":{"error":
{},"text":"\u0011\u0...

那么,有人能提供一些typescript代码来从.net core web api服务获取二进制数据吗?

请更新您的选项:

const myHttpOptions = {
    headers: {
        Authorization: "Bearer " + currentUser.jsonWebToken,
    },
    responseType: 'blob'
};

我猜您需要将响应类型或
内容类型
,设置为
应用程序/octet流
@Automatico,这是我的第一个选择,而不是我读到的blob。但无论如何,这两种方法都不管用。是的!是我的错。实际上ResponseType不是标题。非常感谢!
const myHttpOptions = {
    headers: {
        Authorization: "Bearer " + currentUser.jsonWebToken,
    },
    responseType: 'blob'
};