我正在研究将中继连接到另一台服务器的代理。我已经实现了一个IHttpHandler
来接收特定地址的请求并将它们发送到我的代理。
我的代理基本上启动了与代理服务器的连接并读取原始请求:
var requestString = new StreamReader(httpRequest.InputStream).ReadToEnd();
此时我的问题出现了:输入流只包含HTTP请求主体的流,而不是完整的请求。
如何在不必从HttpRequest
对象重建HTTP请求的情况下检索完整的HTTP请求?
答案 0 :(得分:1)
我不知道ASP .NET中有一个明确的单行,但你可以非常接近,如this论坛帖子所示。建议使用HttpRequest属性构建第一行,然后添加ServerVariables["ALL_RAW"]
,然后添加InputStream
中的请求正文。正如您已经在做的那样。
答案 1 :(得分:0)
获取“完整HTTP请求”对象的唯一方法是以某种方式实际重建它。我不确定你是否需要这个过程的整个对象。也许你可以抓住HttpRequest中的一部分项目进行处理?您可以手动将所需对象的各个部分连接成新的。一旦你偏离使用HttpRequest,它就是我的习惯。