• c# MVC Action 如何知道 发送方给你的 Json 数据的格式内容是什么


    
    
    public class DemoModel
    {
            public string Name { get; set; }
            public int Age { get; set; }
    }
    
    
    [HttpPost]
    public ActionResult About(DemoModel model)
    {
                return Json(model);
    }
    
    [HttpPost]
    public ActionResult About(string Name, int Age)
    {
                return Json(model);
    }

    看到本段代码是不是很熟悉,常用了是吧,现在换一种场景,A与B协作,B向A发送回调,A知道B回想自己发送回调数据,且发送的是Json格式数据,但格式内容B没有给文档,

    此时测试确实可以收到B发送的回调请求,但是就是不知道数据格式很着急,这时B暂时联系不上,且B的项目已经上线运行良好不会出问题,此时怎么也得想办法知道B回调接口

    到底发送了啥子呢?

    有开发经验的小伙伴说好说这还不容易吗?

    看招

    //Post参数来了
    StringBuilder sb = new StringBuilder();
    string[] keys = Request.Form.AllKeys;
    for (int i = 0; i < keys.Length; i++)
    {
                    sb.Append(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
    }
    //Get参数来了
    StringBuilder sb = new StringBuilder();
    foreach (String key in Request.QueryString.AllKeys)
    {
           sb.Append("Key: " + key + " Value: " + Request.QueryString[key]);
    }

    哎呦哦我去,咋全部都是空呢,不对啊根据开发经验 Post,Get两种方式总得是一种吧

    但是就是没有是不是很着急呢

    其实包括我在呢的许多开发小伙伴在使用MVC开发时因为太好用了好多东西微软都为大家准备好了,因为太方便了所以导致我们有些情况就想当然了

    下面说出微软内部是杂实现的吧

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        DemoModel model = filterContext.ActionParameters["model"] as DemoModel;
    }
    
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
        filterContext.HttpContext.Request.InputStream.Position = 0;
        using (var reader = new StreamReader(filterContext.HttpContext.Request.InputStream))
        {
            string json = reader.ReadToEnd();
            //Json字符串得到了知道其他小伙伴发送过来的Json数据格式了
        }
    }    

     本文想说明的问题大家看懂了吗,喜欢的话点个赞呗!

    Ps:补充下

    小伙伴注意①②是不一样的喽

    本文想表达的是

    后台Http请求时 发送给你的是json格式 当你不知道对方会发送什么格式的数据给你【虽然很扯但是但是你懂的。】

    此时无论对方给不给数据文档,我们都知道他发送的啥子格式的数据了

    本文想说明的问题大家看懂了吗,喜欢的话点个赞呗!

  • 相关阅读:
    端口以及服务常用cmd
    异步,同步,阻塞,非阻塞,并行,并发,
    mysql启动不起来
    安装nagios出现的错误
    Linux内核优化
    mysql使用常见问题
    mysql日志
    mysql数据库使用脚本实现分库备份过程
    mysqladmin常用用法
    mysql授权
  • 原文地址:https://www.cnblogs.com/codedreams/p/9600160.html
Copyright © 2020-2023  润新知