AppendHeader与AddHeader完全相同吗?

时间:2011-04-13 11:24:23

标签: asp.net

我们使用ASP.Net 4.0。在我们的代码中,我们经常使用Response.AddHeader("x", "y")。这与Response.AppendHeader("x", "y")完全相同吗?我读到AppendHeader仅存在与经典ASP的兼容性,我们不使用它。

我们可以毫无顾虑地将AddHeader替换为AppendHeader吗?

2 个答案:

答案 0 :(得分:30)

它们是相同的,所以是的,您可以将HttpResponse.AddHeader替换为HttpResponse.AppendHeader

来自MSDN

  

AddHeader与AppendHeader相同   并且仅提供兼容性   与早期版本的ASP。同   ASP.NET,使用AppendHeader。

快速查看Reflector,确认HttpResponse.AddHeader只是致电HttpResponse.AppendHeader

答案 1 :(得分:11)

它们不一样(至少对HttpListenerContext而言)。

以下是测试:

ctx.Response.AddHeader("a", "b");
ctx.Response.AddHeader("a", "c");

结果是:

HTTP/1.1 200
Server: Microsoft-HTTPAPI/2.0
a: c
Date: Mon, 12 Nov 2012 16:42:01 GMT

现在就像这样:

ctx.Response.AddHeader("a", "b");
ctx.Response.AppendHeader("a", "c");

结果是:

HTTP/1.1 200
Server: Microsoft-HTTPAPI/2.0
a: b
a: c
Date: Mon, 12 Nov 2012 16:53:29 GMT