gpt4 book ai didi

asp.net - 如何从 IHttpResponse 获取响应 header

转载 作者:行者123 更新时间:2023-12-04 05:02:42 24 4
gpt4 key购买 nike

我希望能够检索响应 header 以进行日志记录,但确实在接口(interface)上看到了 Headers 属性,但我确实看到了 OriginalResponse。我们应该转换并使用它吗?这会包含 SS 可能注入(inject)的任何 header 吗?我对该接口(interface)的使用是在定义为的全局过滤器中

ResponseFilters.Add((httpReq, httpResp, responseDto) =>
{
// Log portions of the response i.e. Headers
});

谢谢,
斯蒂芬

最佳答案

httpReq.Headers 与您从 ASP.NET HttpRequest.Headers 获得的实例完全相同或自托管HttpListenerRequest.Headers .

所以它是 完全一样作为手动转换底层请求并直接访问它,例如:

HttpRequest header

对于 ASP.NET

var aspNetRequestHeaders = ((HttpRequest)httpReq.OriginalRequest).Headers;

对于 HttpListener:
var httpListenerHeaders = ((HttpListenerRequest)httpReq.OriginalRequest).Headers;

HttpResponse header

IHttpResponse 上目前没有任何 Headers 集合。因此您需要使用类似的方法从底层 HTTP 响应对象访问它们。尽管您可以轻松地将它们包装在您自己的扩展方法中,例如:
public static NameValueCollection GetHeaders(this IHttpResponse) 
{
var aspNetResponseHeaders = httpReq.OriginalResponse as HttpResponse;
return aspNetResponseHeaders != null
? aspNetResponseHeaders.Headers
: ((HttpListenerResponse)httpReq.OriginalResponse).Headers; //Http Listener
}

关于asp.net - 如何从 IHttpResponse 获取响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934059/

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