获取HttpRequest完整请求字符串

本文关键字:请求 字符串 HttpRequest 获取 | 更新日期: 2023-09-27 18:03:37

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

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

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

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

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

获取HttpRequest完整请求字符串

我不知道在asp.net中有一个明确的一行代码,但是你可以非常接近,正如这个论坛帖子所示。建议的是建立HttpRequest属性的第一行,然后添加ServerVariables["ALL_RAW"],然后在InputStream中的请求体,因为你已经在做了。

获得'完整HTTP请求'对象的唯一方法是以某种方式实际重建它。我不确定在这个过程中你是否需要整个物体。也许您可以在HttpRequest中获取项目的子集进行处理?您可以手动将需要的对象的各个部分连接到新的对象中。一旦你不使用HttpRequest,我就会自定义。