asp.net core api 同时get post json
2022-08-18 本文已影响0人
吉凶以情迁
为了简便参数,简单类型没必要用到get里面了,除非是大量数据
经过研究发现,下面代码实现了get 或者 post提交的普通get参数aa的同时 传递json的方法,
dynamic object 都会转换为JsonElement
也可以直接用JsonElement
在谷歌浏览器显示payload,这到底是什么鬼
[HttpPost("getAndPost")]
//[HttpPost("ng={Ngtotal}&id={id}&username={username}")]
public String getAndPost(String aa, JsonElement param)
{
try
{
JObject obj = JObject.Parse(param + "");
return "data::" + param.GetType() + ",getParam:" + aa+",parse Success!";
}
catch (Exception e)
{
return "data::" + param.GetType() + ",getParam:" + aa+",parse fail!"+e.ToString();
}
}
[HttpGet("getAndPost1")]
//[HttpPost("ng={Ngtotal}&id={id}&username={username}")]
public String getAndPost1(String aa, JsonElement param)
{
try
{
JObject obj = JObject.Parse(param + "");
return "data::" + param.GetType() + ",getParam:" + aa+",parse Success!";
}
catch (Exception e)
{
return "data::" + param.GetType() + ",getParam:" + aa+",parse fail!"+e.ToString();
}
}
实际上 就是已经弄好了 get参数 +json 提交就ok了。
image.png在浏览器看不到请求头的表达,只能在单独的选项卡告知 ,此东西叫payload
image.png另外 JObject是不支持的,会识别成 整成的get参数,而非payload.
另外关于属性注解
[HttpGet("AddViewFromItem")]
public String AddViewFromItem
(String title, String tag, int roomID, float scale, String type, [ FromForm]String data,bool debug)
{
除了FromForm 外 其他都是get提交 FromForm
提交的是 application/x-www-url-formencoded
FromBody
提交的是application/json
另外
[HttpPost]
public ActionResult<Data> Post([FromForm][FromBody] Data data)
{
return new ActionResult<Data>(data);
}
public class Data
{
public string Id { get; set; }
public string Txt { get; set; }
}
它应该将数据回显给用户,没什么特别的。但是,这两个属性中只有一个有效,具体取决于顺序。