asp.net core api 同时get post json参数的传递研究

为了简便参数,简单类型没必要用到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; }

}

它应该将数据回显给用户,没什么特别的。但是,这两个属性中只有一个有效,具体取决于顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值