Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpRequest与HttpWebRequest_C#_Asp.net_.net - Fatal编程技术网

C# HttpRequest与HttpWebRequest

C# HttpRequest与HttpWebRequest,c#,asp.net,.net,C#,Asp.net,.net,我有一个网页,截取POST请求,从请求中提取用户名,并根据用户名转发请求。现在,我注意到传入的HttpRequest有一个Params属性,而HttpWebRequest没有。为什么会这样?是否有一种方法可以捕获传出HttpWebRequest中的参数数据 谢谢。它们只是两个不同包中的两个不同.Net类: 系统对象 System.MarshallByRefObject System.Net.WebRequest System.Net.HttpWebRequest 系统对象 Syste

我有一个网页,截取POST请求,从请求中提取用户名,并根据用户名转发请求。现在,我注意到传入的HttpRequest有一个Params属性,而HttpWebRequest没有。为什么会这样?是否有一种方法可以捕获传出HttpWebRequest中的参数数据


谢谢。

它们只是两个不同包中的两个不同.Net类:

系统对象 System.MarshallByRefObject System.Net.WebRequest System.Net.HttpWebRequest
系统对象 System.Web.HttpRequest HttpWebRequest是一个古老的.NET1.1版本——如果您计划重构任何代码(或编写任何新代码),我肯定会使用Web.HttpRequest


首先,它们是完全不同的类,在不同的名称空间中。尽管如此


Params
是一个包装器,它同时公开querystring参数和POST数据。在构造无法写入参数的请求时,必须指定实际添加的数据类型。因此,您应该将其作为查询字符串添加到目标url中,或者您可以将其添加到请求正文中,并将其作为帖子。

感谢您的回复。据我所知,HttpRequest是一个基本上表示传入请求的服务器类。如果要转发请求,必须使用.Net HttpWebRequest重新创建请求。这不对吗?如果我可以创建另一个HttpRequest,那就太棒了。我不太确定HttpWebRequest“是一个老东西”(比如等待被弃用)。以新的异步编程模型为例,使用“async”关键字并返回任务(新的.NET4.5)。HttpWebRequest已生成异步读取。 System.Object System.MarshalByRefObject System.Net.WebRequest System.Net.HttpWebRequest System.Object System.Web.HttpRequest