我一直在尝试编写或设置HttpContext.Response.Body,但没有成功。我发现的大多数示例都使用Body.WriteSync,但参数与示例不同。我尝试将字符串转换为byte[],但文本没有显示在我的Response.Body.上
试图编写或设置HttpContext.Response.Body,但没有成功。
你可以参考下面的代码,它对我来说很好。
public async Task<IActionResult> Test()
{
//for testing purpose
var bytes = Encoding.UTF8.GetBytes("Hello World");
await HttpContext.Response.Body.WriteAsync(bytes, 0, bytes.Length);
//...
此外,您可以调用HttpResponseWritingExtensions.WriteAsync
方法将给定的文本写入响应体。
public async Task<IActionResult> Test()
{
//for testing purpose
await Microsoft.AspNetCore.Http.HttpResponseWritingExtensions.WriteAsync(HttpContext.Response, "Hello World");
//...
也许这不是实际的,但正如前面提到的,您可以使用Microsoft.AspNetCore.Http命名空间中的扩展方法。
public static Task WriteAsync(this HttpResponse response, string text, CancellationToken cancellationToken = default);
所以你的代码看起来像(这是一个更简单的语法(:
HttpContext.Response.WriteAsync(defaultUnauthorizedResponseHtml);