如何在WebAPI中获取POST数据?

惊吓

我正在以以下形式向服务器发送请求:

http://localhost:12345/api/controller/par1/par2

该请求已正确解析为以下方法:

[HttpPost]
public void object Post(string par1, string par2)

但是,我通过请求内容传递了其他数据。如何检索这些数据?

举例来说,假设请求是通过以下形式发送的:

<form action="http://localhost:12345/api/controller/par1/par2" method="post">
    <input type="hidden" name="data" value="value" />
    <input type="submit" name="submit" value="Submit" />
</form>
德扎斯

这个问题的答案中:如何使用asp.net webapi获取Json Post值

  1. 使用参数绑定进行自动解析;请注意,dynamic是由组成的JToken,因此是.Value访问器。

    public void Post([FromBody]dynamic value) {
        var x = value.var1.Value; // JToken
    }
    
  2. 阅读就像 Request.RequestUri.ParseQueryString()[key]

    public async Task Post() {        
       dynamic obj = await Request.Content.ReadAsAsync<JObject>();
       var y = obj.var1;
    }
    
  3. 与#2相同,只是不是异步(?),因此您可以在辅助方法中使用它

    private T GetPostParam<T>(string key) {
        var p = Request.Content.ReadAsAsync<JObject>();
        return (T)Convert.ChangeType(p.Result[key], typeof(T)); // example conversion, could be null...
    }
    

警告-希望使用媒体类型application/json来触发JsonMediaTypeFormatter处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章