加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在WebAPI中获取POST数据?

发布时间:2020-12-15 19:09:59 所属栏目:asp.Net 来源:网络整理
导读:我以下面的形式发送一个请求到服务器: http://localhost:12345/api/controller/par1/par2 该请求正确解析为以下方法: [HttpPost]public void object Post(string par1,string par2) 但是,我通过请求内容传递额外的数据。如何检索这些数据? 为了举例,让
我以下面的形式发送一个请求到服务器:
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>

解决方法

从 answer在这个问题:
How to get Post Values with asp.net webapi

> Autoparse使用参数绑定;注意,动态由JToken组成,因此.Value访问器。

public void Post([FromBody]dynamic value) {
    var x = value.var1.Value; // JToken
}

> Read就像Request.RequestUri.ParseQueryString()[key]

public async Task Post() {        
   dynamic obj = await Request.Content.ReadAsAsync<JObject>();
   var y = obj.var1;
}

>与#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...
}

警告 – 期望媒体类型应用程序/ json为了触发JsonMediaTypeFormatter处理。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读