如何获取Web API中传递给请求的所有参数

问题描述 投票:0回答:1

我试图获取传递给请求的所有参数,以便我可以验证类文件中未声明的任何参数是否会引发异常。

假设我的类文件是:

    [PermissionFilter("somepermision")]
    [Route("/Userdetails", "POST")]
    public class UserDetails
    {
        public string surname{ get; set; }
        public string forename{ get; set; }
    }

因此,如果用户从 Postman 错误地发送参数,我想抛出异常。有什么方法可以从最终用户获取所有请求参数。这样我就可以根据我的要求验证它。假设用户发送一些额外的参数以及请求类文件中的提及参数,在这种情况下我想抛出异常。

c# asp.net-web-api httpwebrequest
1个回答
0
投票

您将在 MS_QueryNameValuePairs 键的 Request.Parameters 中找到请求参数

 [HttpPost]
    public HttpResponseMessage Post()
    {
        var keyValuePair =this.Request.Properties["MS_QueryNameValuePairs"];
    }

并在其上创建一个 foo 循环来获取它们,或者您可以像这样手动获取它们:

      [HttpPost]
    public HttpResponseMessage Post()
    {
        var query = this.Request.RequestUri.Query;
        query.Remove(0);
        List<string> paramteters = query.Split('&').ToList();
     }

这对你有用:D

© www.soinside.com 2019 - 2024. All rights reserved.