如何获得POST数据的WebAPI? [英] How to get POST data in WebAPI?
问题描述
我发送请求到服务器中的格式如下:
的http://本地主机:12345 / API /控制器/ PAR1 / PAR2
该请求被正确地解析的方法,如:
[HttpPost]
公共无效对象邮报(字符串PAR1,PAR2字符串)
不过,我通过请求内容传递附加数据。我怎样才能找回这些数据?
例如起见,让我们说,该请求是从形式发送:
<形式的行动=HTTP://本地主机:12345 / API /控制器/ PAR1 / par2的方法=后>
<输入类型=隐藏的名字=数据值=值/>
<输入类型=提交名称=提交值=提交/>
< /表及GT;
这个问题的回答:
如何获得邮政价值观与asp.net的WebAPI
-
Autoparse使用参数绑定;请注意,
动态
是由JToken
,所以使用了.value的
访问。公共无效后([FromBody]动态值){
VAR X = value.var1.Value; // JToken
} -
阅读就像
Request.RequestUri.ParseQueryString()[关键]
公共异步任务后(){
动态的obj =等待Request.Content.ReadAsAsync< JObject>();
变种Y = obj.var1;
} -
同#2,只是没有异步(?),所以你可以在一个辅助方法使用它
私人牛逼GetPostParam< T>(字符串键){
VAR P = Request.Content.ReadAsAsync< JObject>();
回报(T)Convert.ChangeType(p.Result [关键]的typeof(T)); //例如转换,可以为空...
}
警告 - 希望媒体类型应用程序/ JSON
以触发 JsonMediaTypeFormatter
处理
I'm sending a request to server in the following form:
http://localhost:12345/api/controller/par1/par2
The request is correctly resolved to a method like:
[HttpPost]
public void object Post(string par1, string par2)
However, I pass additional data through the request content. How can I retrieve these data?
For the sake of example, let's say, that the request is sent from the form:
<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>
From answer in this question: How to get Post Values with asp.net webapi
Autoparse using parameter binding; note that the
dynamic
is made up ofJToken
, hence the.Value
accessor.public void Post([FromBody]dynamic value) { var x = value.var1.Value; // JToken }
Read just like
Request.RequestUri.ParseQueryString()[key]
public async Task Post() { dynamic obj = await Request.Content.ReadAsAsync<JObject>(); var y = obj.var1; }
Same as #2, just not asynchronously (?) so you can use it in a helper method
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... }
Caveat -- expects media-type application/json
in order to trigger JsonMediaTypeFormatter
handling.
这篇关于如何获得POST数据的WebAPI?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!