2013-03-11 167 views
2

我正在处理将中继到另一台服务器的连接的代理。我实施了一个IHttpHandler,它接受了一个特定地址的请求并将它们发送给我的代理。获取HttpRequest完整请求字符串

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

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

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

如何检索完整的HTTP请求而不必从HttpRequest对象重建它?

回答

1

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

0

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