我有一个网页可以拦截 POST 请求,从请求中提取用户名,并且应该根据用户名转发请求。现在,我注意到传入的 HttpRequest 有一个 Params 属性,而 HttpWebRequest 没有。为什么是这样?有没有办法可以在传出的 HttpWebRequest 中捕获参数数据?
谢谢。
它们只是两个不同包中的两个不同的 .Net 类:
系统对象 System.MarshalByRefObject System.Net.WebRequest System.Net.HttpWebRequest
系统对象 System.Web.HttpRequest
HttpWebRequest 是一个旧的 .Net 1.1 东西 - 如果您打算重构任何代码(或编写任何新代码!),我肯定会使用 Web.HttpRequest
恕我直言...
对于初学者来说,它们是完全不同的类,在不同的命名空间中。话虽如此,
Params
是一个包装器,它公开查询字符串参数和 POST 数据。当您构建一个无法写入参数的请求时,您必须指定您实际添加的数据类型。因此,您应该将其作为查询字符串添加到目标 url,或者您可以将其添加到请求的正文中并使其成为 POST。