在ASP.NET中使用C#接受URL编码的POST请求

在ASP.NET中使用C#接受URL编码的POST请求,c#,post,cgi,C#,Post,Cgi,我正在与第三方合作,该第三方希望通过url编码的post请求发送信息,但我似乎不知道在他们发送请求时如何接受数据 以下是他们提交请求后的服务器日志(对我的地址和他们发送的信息做了一些更改): [13-01-12 14:52:55][DEBUG]:>>“POST/mypostpage.aspx HTTP/1.1[\r][\n]” [13-01-12 14:52:55][DEBUG]:>>“用户代理:Jakarta Commons HttpClient/3.0.1[\r][\n]” [13-01-1

我正在与第三方合作,该第三方希望通过url编码的post请求发送信息,但我似乎不知道在他们发送请求时如何接受数据

以下是他们提交请求后的服务器日志(对我的地址和他们发送的信息做了一些更改):

[13-01-12 14:52:55][DEBUG]:>>“POST/mypostpage.aspx HTTP/1.1[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“用户代理:Jakarta Commons HttpClient/3.0.1[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“主机:mydomain.com[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“内容长度:1034[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“内容类型:application/x-www-form-urlencoded[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“[\r][\n]”
[13-01-12 14:52:55][DEBUG]:>>“Variable1=variable1value&variable2=variable2value&variable3=variable3value”

[13-01-12 14:53:02][DEBUG]:Request.QueryString从请求的URI中提取查询字符串变量,这些变量通常使用application/x-www-form-urlencoded方案进行编码。查询字符串参数将不会获得过帐信息

虽然上面发布的数据的内容类型使用与查询字符串变量相同的方案,但为了访问它们,您需要使用
variable1=Request.Form[“variable1”]
或者,
variable1=Request.Params[“variable1”]包含已发布值、查询字符串参数、cookie和服务器变量的累积集合

供参考:或

POST和GET请求在概念上是不同的,即使带有application/x-www-form-urlencoded变量的POST请求在格式上与带有使用相同方案格式化的查询字符串参数的GET请求相同;因此,在类中分离访问方法

编辑:


HttpRequest.Form和HttpRequest.Params属性返回a,它将字符串值与基于字符串的键相关联,因此所有值都将是字符串。

Request.QueryString从请求的URI中提取查询字符串变量,该URI通常使用应用程序/x-www-Form-urlencoded方案进行编码。查询字符串参数将不会获得过帐信息

string variable1 = Request.Form["variable1"];
虽然上面发布的数据的内容类型使用与查询字符串变量相同的方案,但为了访问它们,您需要使用
variable1=Request.Form[“variable1”]
或者,
variable1=Request.Params[“variable1”]包含已发布值、查询字符串参数、cookie和服务器变量的累积集合

供参考:或

POST和GET请求在概念上是不同的,即使带有application/x-www-form-urlencoded变量的POST请求在格式上与带有使用相同方案格式化的查询字符串参数的GET请求相同;因此,在类中分离访问方法

编辑:

Form和HttpRequest.Params属性返回一个字符串,它将字符串值与基于字符串的键相关联,因此所有值都将是字符串

string variable1 = Request.Form["variable1"];
他们使用的内容类型是HTML表单与
method=“post”
一起使用的两种格式之一,实际上这两种格式中比较常见的一种,而
Request.Form
会解析这两种格式

事实上,选择内容类型可能是为了让交易结束时的人们生活更轻松

他们使用的内容类型是HTML表单与
method=“post”
一起使用的两种格式之一,实际上这两种格式中比较常见的一种,而
Request.Form
会解析这两种格式


事实上,选择内容类型可能是为了让交易结束时的人们生活得更轻松。

看起来他们给你的是http头中的数据,而不是查询字符串中的数据。检查WebHeaderCollection:@TheSavage这不是标题,而是正文。事实上,这是错误的,因为查询字符串位于标题中。看起来他们给您的数据是http标题中的数据,而不是查询字符串中的数据。检查WebHeaderCollection:@TheSavage这不是标题,而是正文。事实上,这是错误的,因为查询字符串在标题中。@Chronos很高兴能提供帮助……也许你应该接受答案lol@Chronos很高兴能帮上忙…也许你应该接受这个答案哈哈