AppendHeader与AddHeader完全相同吗?

Ran*_*mer 26 asp.net

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

我们可以毫无顾虑地用AddndHeader替换AddHeader吗?

Rob*_*ine 31

他们是一样的,所以是的,你可以替换HttpResponse.AddHeader使用HttpResponse.AppendHeader.

来自MSDN

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

快速查看Reflector确认HttpResponse.AddHeader只需拨打电话HttpResponse.AppendHeader.


Paw*_*och 11

它们不一样(至少对于HttpListenerContext).

这是测试:

ctx.Response.AddHeader("a", "b");
ctx.Response.AddHeader("a", "c");
Run Code Online (Sandbox Code Playgroud)

结果是:

HTTP/1.1 200
Server: Microsoft-HTTPAPI/2.0
a: c
Date: Mon, 12 Nov 2012 16:42:01 GMT
Run Code Online (Sandbox Code Playgroud)

现在这样:

ctx.Response.AddHeader("a", "b");
ctx.Response.AppendHeader("a", "c");
Run Code Online (Sandbox Code Playgroud)

结果是:

HTTP/1.1 200
Server: Microsoft-HTTPAPI/2.0
a: b
a: c
Date: Mon, 12 Nov 2012 16:53:29 GMT
Run Code Online (Sandbox Code Playgroud)