Angular 将二进制数据从.net核心web api传输到typescript应用程序
我有.NETCore3.0WebAPI应用程序和Angular8客户端。到目前为止,我使用json序列化在它们之间传输了一些数据。但我想知道如何将字节数组从api传输到客户端 我发现现代流行的发送二进制文件的方式是使用IActionResult而不是HttpResponseMessage。所以在我的控制器中有这样的代码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
[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'
};