gpt4 book ai didi

C# HttpListener。发送 EMPTY 响应(没有任何人工制品)

转载 作者:太空狗 更新时间:2023-10-29 18:13:09 28 4
gpt4 key购买 nike

我正在使用 C# HttpListener 类来实现一些服务器。这就是问题所在。我只想向客户发送对请求的空响应,例如

HTTP/1.1 200 OK

HTTP/1.1 400 Bad Request

没有任何额外的文字。所以我设置状态代码和状态描述并且不写入任何字节来响应 OutputStream - 我只是不需要它们。然后使用 response.Close() 方法关闭响应以启动向客户端发送字节。我在 Fiddler 显示的客户端得到的是

HTTP/1.1 200 OK

Transfer-Encoding: chunked

Server: Microsoft-HTTPAPI/2.0

Date: Sun, 25 Oct 2015 10:42:12 GMT


0

服务器和日期字段有一个解决方法 - HttpListener Server Header c# .

但是如何从这个响应中删除这些“Transfer-Encoding: chunked”伪像和“0”正文?!

提前感谢大家!

代码:

private void ProcessContext(HttpListenerContext aContext)
{
HttpListenerResponse response = aContext.Response;

response.StatusCode = (int)HttpStatusCode.OK;
response.StatusDescription = "OK";
response.Close();

}

最佳答案

除了状态和 Content-Length header 之外,这将删除所有内容:

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://*:5555/");
listener.Start();
listener.BeginGetContext(ar =>
{
HttpListener l = (HttpListener)ar.AsyncState;
HttpListenerContext context = l.EndGetContext(ar);

context.Response.Headers.Clear();
context.Response.SendChunked = false;
context.Response.StatusCode = 200;
context.Response.Headers.Add("Server", String.Empty);
context.Response.Headers.Add("Date", String.Empty);
context.Response.Close();
}, listener);

在 fiddler 中你会看到这个:

enter image description here

关于C# HttpListener。发送 EMPTY 响应(没有任何人工制品),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33328925/

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