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; }

}

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

上一篇下一篇

猜你喜欢

热点阅读