参数 HTTP Post c#
Arguments HTTP Post c#
我正在制作一个 HTTP POST 方法来获取数据。我有一个想法来创建一个方法来获取特定的参数,但是当我不知道如何获取参数时。在 HTTP GET 中,参数在 URL 中,更容易获取参数。如何创建一种方法来获取 HTTP Post 中的所有数据?例如,在 PHP 中,当您显示变量 $_POST 时,您会显示正文 post 中的所有数据。我如何在 C# 中执行此操作?
我的方法是这样的:
[HttpPost]
[AllowAnonymous]
public IHttpActionResult Test()
{
// Get URL Args for example is
var args = Request.RequestUri.Query;
// But if the arguments are in the body i don't have idea.
}
Web API 有一项功能,可以自动绑定发布到控制器内的操作的参数。这叫做Parameter Binding。它允许您简单地请求 URL 内的对象或 POST 请求的主体,并且它使用称为格式化程序的东西为您执行反序列化魔法。 XML、JSON 和其他已知的 HTTP 请求类型都有一个格式化程序。
例如,假设我有以下 JSON:
{
"SenderName": "David"
"SenderAge": 35
}
我可以创建一个符合我要求的对象,我们称之为 SenderDetails
:
public class SenderDetails
{
public string SenderName { get; set; }
public int SenderAge { get; set; }
}
现在,通过在我的 POST 操作中接收此对象作为参数,我告诉 WebAPI 尝试为我绑定该对象。如果一切顺利,我将获得可用的信息,而无需进行任何解析:
[Route("api/SenderDetails")]
[HttpPost]
public IHttpActionResult Test(SenderDetails senderDetails)
{
// Here, we will have those details available,
// given that the deserialization succeeded.
Debug.Writeline(senderDetails.SenderName);
}
如果我没听错,在 C# 中,您可以使用 [HttpPost]
属性来公开 post 方法。
[HttpPost]
public IHttpActionResult Test()
{
// Get URL Args for example is
var args = Request.RequestUri.Query;
// But if the arguments are in the body i don't have idea.
}
我正在制作一个 HTTP POST 方法来获取数据。我有一个想法来创建一个方法来获取特定的参数,但是当我不知道如何获取参数时。在 HTTP GET 中,参数在 URL 中,更容易获取参数。如何创建一种方法来获取 HTTP Post 中的所有数据?例如,在 PHP 中,当您显示变量 $_POST 时,您会显示正文 post 中的所有数据。我如何在 C# 中执行此操作?
我的方法是这样的:
[HttpPost]
[AllowAnonymous]
public IHttpActionResult Test()
{
// Get URL Args for example is
var args = Request.RequestUri.Query;
// But if the arguments are in the body i don't have idea.
}
Web API 有一项功能,可以自动绑定发布到控制器内的操作的参数。这叫做Parameter Binding。它允许您简单地请求 URL 内的对象或 POST 请求的主体,并且它使用称为格式化程序的东西为您执行反序列化魔法。 XML、JSON 和其他已知的 HTTP 请求类型都有一个格式化程序。
例如,假设我有以下 JSON:
{
"SenderName": "David"
"SenderAge": 35
}
我可以创建一个符合我要求的对象,我们称之为 SenderDetails
:
public class SenderDetails
{
public string SenderName { get; set; }
public int SenderAge { get; set; }
}
现在,通过在我的 POST 操作中接收此对象作为参数,我告诉 WebAPI 尝试为我绑定该对象。如果一切顺利,我将获得可用的信息,而无需进行任何解析:
[Route("api/SenderDetails")]
[HttpPost]
public IHttpActionResult Test(SenderDetails senderDetails)
{
// Here, we will have those details available,
// given that the deserialization succeeded.
Debug.Writeline(senderDetails.SenderName);
}
如果我没听错,在 C# 中,您可以使用 [HttpPost]
属性来公开 post 方法。
[HttpPost]
public IHttpActionResult Test()
{
// Get URL Args for example is
var args = Request.RequestUri.Query;
// But if the arguments are in the body i don't have idea.
}