获取HttpRequest完整请求字符串

时间:2013-03-11 21:07:09

标签: c# asp.net

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

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

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

此时我的问题出现了:输入流只包含HTTP请求主体的流,而不是完整的请求。

如何在不必从HttpRequest对象重建HTTP请求的情况下检索完整的HTTP请求?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

获取“完整HTTP请求”对象的唯一方法是以某种方式实际重建它。我不确定你是否需要这个过程的整个对象。也许你可以抓住HttpRequest中的一部分项目进行处理?您可以手动将所需对象的各个部分连接成新的。一旦你偏离使用HttpRequest,它就是我的习惯。