2

我正在研究将连接中继到另一台服务器的代理。我已经实现了一个IHttpHandler接收特定地址的请求并将它们发送到我的代理。

我的代理基本上启动到代理服务器的 sockect 连接并读取原始请求:

var requestString = new StreamReader(httpRequest.InputStream).ReadToEnd();

我的问题出现在这一点上:输入流只包含HTTP请求的主体流,而不是完整的请求。

如何检索完整的 HTTP 请求,而无需从HttpRequest对象中重建它?

4

2 回答 2

1

我不知道 ASP .NET 中是否有明确的单行代码,但您可以非常接近,如论坛帖子所示。建议从 HttpRequest 属性中构建第一行,然后添加,然后是您已经在做ServerVariables["ALL_RAW"]的请求正文。InputStream

于 2013-03-11T21:31:22.393 回答
0

获得“完整 HTTP 请求”对象的唯一方法是以某种方式实际重建它。不过,我不确定您是否需要整个对象来完成此过程。也许您可以只获取 HttpRequest 中的项目子集进行处理?您可以手动将您需要的对象的各个部分连接成新的东西。但是,一旦您偏离使用 HttpRequest,这对我来说都是自定义的。

于 2013-03-11T21:15:07.087 回答