gpt4 book ai didi

asp.net - 使用 owin 中间件替换响应正文

转载 作者:行者123 更新时间:2023-12-04 15:32:57 25 4
gpt4 key购买 nike

有没有办法使用 OWIN 中间件覆盖响应内容?

最佳答案

我的自定义错误类

public class Error
{
public string error { get; set; }
public string description { get; set; }
public string url { get; set; }
}

我的自定义中间件类
public class InvalidAuthenticationMiddleware : OwinMiddleware
{

public InvalidAuthenticationMiddleware(OwinMiddleware next) : base(next)
{
}

public override async Task Invoke(IOwinContext context)
{

var owinResponse = context.Response;
var owinResponseStream = owinResponse.Body;
var responseBuffer = new MemoryStream();
owinResponse.Body = responseBuffer;

await Next.Invoke(context);

var result = new Error
{
error = "unsupported_grant_type",
description = "The 'grant_type' parameter is missing or unsupported",
url = context.Request.Uri.ToString()
};

var customResponseBody = new StringContent(JsonConvert.SerializeObject(result));
var customResponseStream = await customResponseBody.ReadAsStreamAsync();
await customResponseStream.CopyToAsync(owinResponseStream);

owinResponse.ContentType = "application/json";
owinResponse.ContentLength = customResponseStream.Length;
owinResponse.Body = owinResponseStream;
}
}

在我的 Startup.cs 中注册
app.Use<InvalidAuthenticationMiddleware>();

我从正文中取消选择 grant_type 以生成 400(错误请求)。

我在 postman 中的回答

enter image description here

关于asp.net - 使用 owin 中间件替换响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32731706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com