Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET HTTP处理程序--如何发送自定义响应?_.net_Http_Handler - Fatal编程技术网

.NET HTTP处理程序--如何发送自定义响应?

.NET HTTP处理程序--如何发送自定义响应?,.net,http,handler,.net,Http,Handler,我已将自定义(基于套接字的)服务器转换为IIS(.NET 4.0)中的HTTP处理程序 我已将客户端转换为以正确格式发送HTTP GET 我不想更改客户端的响应处理代码来解析HTML代码。这是后方的疼痛,也是不必要的。我不需要此服务器与浏览器一起工作,也不需要与我的客户端以外的任何东西兼容 因此,我基本上需要HTTP处理程序(服务器)来发送客户端期望的响应,而不需要“HTML/1.0”、头等等 目前我正在使用HttpContext.Response.Write()方法。我认为有一种方法可以将原始

我已将自定义(基于套接字的)服务器转换为IIS(.NET 4.0)中的HTTP处理程序

我已将客户端转换为以正确格式发送HTTP GET

我不想更改客户端的响应处理代码来解析HTML代码。这是后方的疼痛,也是不必要的。我不需要此服务器与浏览器一起工作,也不需要与我的客户端以外的任何东西兼容

因此,我基本上需要HTTP处理程序(服务器)来发送客户端期望的响应,而不需要“HTML/1.0”、头等等

目前我正在使用HttpContext.Response.Write()方法。我认为有一种方法可以将原始数据写入响应,或者有一种方法可以删除我想要发送的数据周围的所有标题和HTML标记

提前感谢您的帮助。
Dave

如果您在浏览器中查看此内容以进行验证,那么您可能会看到浏览器试图为您修复HTML

例如,如果我的处理程序中有:

public void ProcessRequest(HttpContext context)
{
    context.Response.Write("Hello World");
}
然后响应头将如下所示:

HTTP/1.1200正常
服务器:ASP.NET开发服务器/10.0.0.0
日期:2011年9月3日星期六03:26:36 GMT
X-AspNet-Version:4.0.30319
缓存控制:专用
内容类型:text/html;字符集=utf-8
内容长度:11
连接:关闭

答复的实际内容很简单

你好,世界

您会注意到默认的内容类型是text/html,但是,您基本上可以完全控制响应。您可以清除标题,添加新标题,并相应地设置内容类型:

public void ProcessRequest(HttpContext context)
{
    context.Response.ClearHeaders();
    context.Response.AddHeader("my-skillz", "being AWESOME!");
    context.Response.ContentType = "text/plain";
    context.Response.Write("Hello World");
}
这将产生以下响应头:

HTTP/1.1200正常
服务器:ASP.NET开发服务器/10.0.0.0
日期:2011年9月3日星期六03:40:14 GMT
X-AspNet-Version:4.0.30319
我的技能Z:太棒了
缓存控制:专用
内容类型:文本/纯文本;字符集=utf-8
内容长度:11
连接:关闭

好了。查看上面的文档,这样您就可以看到所有可用的内容,您应该能够准确地从回复中得到您想要的内容,无需任何额外的麻烦,也看不到任何HTML。

您对“…”的看法是对的。浏览器正在将其添加到中。尽管如此,标题仍然存在。我想不用担心。这不是对客户机的可怕修改。我需要做的就是使用String.split(“\r\n\r\n”)并使用第二个字符串。