如何覆盖默认内容类型
How to override default Content-type
我有一个最小的 API (Project Sdk="Microsoft.NET.Sdk.Web" ) 应用程序,它有一个 GET 端点,我想 return 一个 image/png。
终点是:
app.MapGet("/text2img/{inputText}", (string inputText) => {
var fileBytes = new ByteArrayContent(text2img(inputText).ToByteArray());
var mimeType="image/png";
var fileBytesArray = fileBytes.ReadAsByteArrayAsync().Result;
return Results.File(new Microsoft.AspNetCore.Mvc.FileContentResult(fileBytesArray, mimeType).FileContents);
});
它 return 是 png 图像的正确字节,但内容类型是八位字节流:
HTTP/1.1 200 OK
Content-Length: 24975
Content-Type: application/octet-stream
Date: Fri, 22 Oct 2021 16:29:49 GMT
Server: Kestrel
如何return正确的内容类型?
Results.File
(至少在最新版本中)具有 contentType
的参数,您可以将字节数组和内容类型传递给它:
app.MapGet("/img", () =>
{
var mimeType = "image/png";
var bytes = ...
return Results.File(bytes, contentType: mimeType);
});
我有一个最小的 API (Project Sdk="Microsoft.NET.Sdk.Web" ) 应用程序,它有一个 GET 端点,我想 return 一个 image/png。
终点是:
app.MapGet("/text2img/{inputText}", (string inputText) => {
var fileBytes = new ByteArrayContent(text2img(inputText).ToByteArray());
var mimeType="image/png";
var fileBytesArray = fileBytes.ReadAsByteArrayAsync().Result;
return Results.File(new Microsoft.AspNetCore.Mvc.FileContentResult(fileBytesArray, mimeType).FileContents);
});
它 return 是 png 图像的正确字节,但内容类型是八位字节流:
HTTP/1.1 200 OK
Content-Length: 24975
Content-Type: application/octet-stream
Date: Fri, 22 Oct 2021 16:29:49 GMT
Server: Kestrel
如何return正确的内容类型?
Results.File
(至少在最新版本中)具有 contentType
的参数,您可以将字节数组和内容类型传递给它:
app.MapGet("/img", () =>
{
var mimeType = "image/png";
var bytes = ...
return Results.File(bytes, contentType: mimeType);
});