gpt4 book ai didi

asp.net-mvc-4 - 在 ASP.NET MVC4 WebAPI 中实现 ETag 支持

转载 作者:行者123 更新时间:2023-12-03 13:54:19 25 4
gpt4 key购买 nike

在最新的 ASP.NET MVC4 测试版中,您将如何通过 ETags 支持条件 GET 支持? ActionFilter 需要能够完成为返回的资源生成 ETag 的请求,以便与请求中的 If-None-Match header 进行比较。然后,不管 If-None-Match 头中传入的 ETag 是否与生成的 ETag 相同,都将生成的 ETag 添加到 ETag 响应头中。但是对于 ASP.NET MVC4,我不知道从哪里开始。有什么建议么?

最佳答案

Luke Puplett 的回答让我走上了正轨(+1),但请注意,您还必须阅读服务器端的 ETag 以避免在每个请求中发送所有数据:

string hash = obj.ModifiedDate.GetHashCode().ToString();
var etag = new EntityTagHeaderValue(String.Concat("\"", hash, "\""), true);

if (Request.Headers.IfNoneMatch.Any(h => h.Equals(etag)))
{
return new HttpResponseMessage(HttpStatusCode.NotModified);
}

var response = this.Request.CreateResponse(HttpStatusCode.OK, obj);
response.Headers.ETag = etag;
return response;

尊重 If-Modified-Since 也是一个好主意。标题。见 RFC 2616 .

关于asp.net-mvc-4 - 在 ASP.NET MVC4 WebAPI 中实现 ETag 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365689/

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