精华内容
下载资源
问答
  • webapi接收json字符串

    2020-12-24 19:50:25
    前端访问webapi <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8" /> <meta ...

    前端访问webapi

    
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>首页-测试</title>
    </head>
    <body>
        <div id="publish_article_whl_content">
      </div>
        <div>
            <input  type="text"  id="account"  />
            <input type="button" value="发送数据" id="btnSend" />
        </div>
    
        <script src="jquery-1.11.3.min.js"></script>
        <script>
            $("#btnSend").click(function () {
                $.ajax({             
                    url: "http://localhost:8079/performance_api/Appoint/AddAppointList",
                    type: "post",
    				contentType:"application/x-www-form-urlencoded",
                    headers: {
                     "Authorization":"Bearer I9R85qjqxQqKV/u32pW1+lEPcTTk8/TG6gvVSU6keXfJPA62bHru/XzCpVgtNVacXBL89oIFLyht3116sthTeQO5GcCnKmm+wie9fJ8v2WeXlSVzS+RfR1oUW8lOQOuC05xYrwCk5wEe4/zKQEntdKnzs5QDiY7egaH4que3YPuhesk1Mj9dXcgY0GHrVO71ogNSBu4DugUQNI9CUXSem5okLPAeMdZFps/CdI/0tRBUqnSvOKUklvh4jSu2Ny0V6kpC4FktZ9E6s6lamreCepdEvmHAT9cwqSUBh8fl1vBcgvImbG+kAVN8upjcN5Z76RaVfwJMHeF9gOR7J9fnZPwwmrvJ1xXKoAgQbWY7TXI7o5ddN0qVDz/Mtk20L9m/ZH2FXxpvKwuaxvdVEiPiurm59U6+fTF0vdvzgrkYbBJM/2TvLeNjOvLOG32tzpn/HC29MYK6ZjzjnFJUDxfjpxGZR7LGsiq3UYLRrh8jqQU="
                    }, 
                   data: {
                       json:"[{\"One_level\":1,\"Order_month\":\"2020-12\",\"Reward_money\":23000,\"Form_name\":\"绩效奖励\",\"Form_main_id\":\"00323ee91954439da14bb6445a1ea86d\",\"Department_name\":\"中书省\",\"Department_id\":\"5cefead5ab8e4a02a32b95b3f5b8a7e3\",\"Data_type\":2}]"
                   },
                    success: function (d) {
                        console.log(d);
                    }
                });
            });
     
        </script>
    </body>
    </html>
    
    

    C#后台接收

    [HttpPost]
    public async Task<IHttpActionResult> AddAppointList(JsonInput json)
    {
    	List<Appoint_form> list = null;
    	if (!string.IsNullOrWhiteSpace(json.Json))
    	{
    		list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Appoint_form>>(json.Json);
    	}
    	Result result = await appoint.AddAppoint_formListAsync(list, CurrentLoginUser);
    	return Json(result);
    }
    
    
    
     /// <summary>
     /// 接收json参数
     /// </summary>
     public struct JsonInput
     {
         public string Json { get; set; }
     }
    
    展开全文
  • WebApi接收post方式传入的json数据

    千次阅读 2019-03-21 13:56:00
    [RoutePrefix("Api")] public class UploadController:BaseApiController { [HttpPost] [Route("Upload")] public IHttpActionResult Upload() { try{ //接收post传入的数...

    [RoutePrefix("Api")]

    public class UploadController:BaseApiController

    {

        [HttpPost]

        [Route("Upload")]

        public IHttpActionResult Upload()

        {

             try{

                  //接收post传入的数据

                  var request=System.Web.HttpContext.Current.Request;

                  byte[] requestData=new byte[request.InputStream.Length];

                  request.InputStream.Read(requestData,0,(int),request.InputStream.Length);

                  var jsonData=Encoding.UTF8.GetString(requestData);

                  string JsonData=jsonData.TrimStart('"').TrimEnd('"').Replace(@"\","");

                  dynamic m=JsonData.ToObject<dynamic>();

                  //实体化后直接赋值

                  string MeterNo=m.MeterNo;

                  string UserCode=m.UserCode;

                 }

             catch(Exception ex){

                  throw ex;

                 }

        }

        public static T ToObject<T>(this string Json)

        {

           return Json==null?default(T):JsonConvert.DeserializeObject<T>(Json);

        }

    }

    转载于:https://www.cnblogs.com/huodige/p/10571229.html

    展开全文
  • NET Web API接收POST方式JSON格式

    千次阅读 2019-01-19 14:23:04
    测试接口的工具:postman,发送参数为JSON格式,发送方式POST ...Web API接收的方法: public string PostSaveData() { LogHelper.WriteLog("接口请求:" + Request.RequestUri.ToString()); HttpRequest...

    测试接口的工具:postman,发送参数为JSON格式,发送方式为POST

    Web API接收的方法:

            public string PostSaveData()
            {
                LogHelper.WriteLog("接口请求:" + Request.RequestUri.ToString());
                HttpRequest request =  HttpContext.Current.Request;
                Stream postData = request.InputStream;
                StreamReader sRead = new StreamReader(postData);
                string postContent = sRead.ReadToEnd();
                sRead.Close();
                LogHelper.WriteLog("接收到的数据:" + postContent);
                return postContent;
            }
    

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201901/05/1546678801_709868.png) 我想通过httpclient调用某个webapi地址然后获取图中的数据
  • webapi 获取json数据

    2019-02-26 17:33:00
    webapi中我们使用request强制同步获取数据,显示获取不到 // 强制同步获取不到数据 string aa = this .Request.Content.ReadAsStringAsync().GetAwaiter().GetResult();   推荐:使用异步的方式 ...

    一般的我们可以直接使用参数来接受,这个就不多介绍了

        [HttpGet]
            public IHttpActionResult Test2([FromUri]string name)
            {
                object obj = new
                {
                    name = "sss",
                    age = 78,
                    sex = true
                };
                return Ok(new { errcode = 0, data = obj });
            }
    
            [HttpPost]
            public IHttpActionResult Test3([FromBody]string name)
            {
                throw new Exception("嘻嘻嘻");
            }
    
    
            /// <summary>
            /// 返回强类型
            /// </summary>
            /// <param name="name"></param>
            /// <returns></returns>
            [HttpGet]
            public CommonOutDto Test4([FromUri]string name)
            {
                CommonOutDto outDto = new CommonOutDto();
                outDto.errcode = 0;
                return outDto;
            } 

     

     

    现在一般使用json来传递参数,如果使用强类型,需要我们把类的属性和参数名设置一样就可以了。get,post都可以,这里只演示了post请求

     

    ①使用参数名来接受,这样显示不管你是传递json字符串还是json对象都是接收不到的

     [HttpPost]
            public IHttpActionResult Test4([FromBody]string json)
            {
                throw new Exception("嘻嘻嘻");
            }

     

    ②稍微改动下,把参数类型换成objct,这样我们不管是传递json对象和字符串都是能够接受到的

     [HttpPost]
            public IHttpActionResult Test4([FromBody]object json)
            {
                throw new Exception("嘻嘻嘻");
            }

    json对象;

     

    json字符串:

     

     

    正解:普通的两种使用方式

         /// <summary>
            /// 如果没有定义Dto类型
            /// </summary>
            /// <param name="json">json数据</param>
            /// <returns></returns>
            [HttpPost]
            public IHttpActionResult Test3([FromBody]object json)
            {
                JObject @object = JObject.Parse(json.ToString());
    
                return Ok(@object);
            }
    
            /// <summary>
            /// 定义了Dto类型
            /// </summary>
            /// <param name="inDto">
            /// 根据json 定义的类
            /// </param>
            /// <returns></returns>
            [HttpPost]
            public IHttpActionResult Test4(ToiletInfoInDto inDto)
            {
                // CommonOutDto 为自定义的返回类
                CommonOutDto outDto = new CommonOutDto();
                outDto.dataStr = "请求成功";
                outDto.errcode = 0;    
                return Ok(outDto);
            }

     

    ToiletInfoInDto :
      /// <summary>
        /// 厕所信息
        /// </summary>
        public class ToiletInfoInDto
        {
            /// <summary>
            /// 厕所编号
            /// </summary>
            public string CsNum { get; set; }
    
            /// <summary>
            /// 厕所名称
            /// </summary>
            public string CsName { get; set; }
    
            /// <summary>
            /// 百度经度
            /// </summary>
            public string CoordX { get; set; }
    
            /// <summary>
            /// 百度纬度
            /// </summary>
            public string CoordY { get; set; }     
    
            /// <summary>
            /// 厕所等级
            /// </summary>
            public string Rank { get; set; }     
        }
    View Code
    CommonOutDto:
      /// <summary>
        /// 返回公共类
        /// </summary>
        public class CommonOutDto
        {
            public int errcode { get; set; }
    
            public string dataStr { get; set; }
    
            public string errmsgStr { get; set; }
        }
    View Code

     

     

     

     ③mvc中也可以写接口,我们肯定使用过流接受过参数,那webapi中同样是可以的

    mvc中可以直接写:

     string json2 = new StreamReader(Request.InputStream).ReadToEnd();

    webapi中没有 HttpContext这个,我们可以引用进行使用

      //引用 using System.Web;
                    string json2 = new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd();

    webapi中我们使用request强制同步获取数据,显示获取不到

       //强制同步获取不到数据
                    string aa = this.Request.Content.ReadAsStringAsync().GetAwaiter().GetResult();

     

    推荐:使用异步的方式

     

            /// <summary>
            /// 使用objct接受
            /// </summary>
            /// <param name="json"></param>
            /// <returns></returns>
            [HttpPost]
            public async Task<IHttpActionResult> TestAsync([FromBody]object json)
            {
                JObject @object = JObject.Parse(json.ToString());
                return await Task.FromResult<IHttpActionResult>(Ok(@object));
            }
    
            /// <summary>
            /// 使用强类型接受
            /// </summary>
            /// <param name="inDto"></param>
            /// <returns></returns>
            [HttpPost]
            public async Task<IHttpActionResult> TestAsync2(ToiletInfoInDto inDto)
            {
                return await Task.FromResult<IHttpActionResult>(Ok(inDto));
            }
    
            /// <summary>
            /// 使用读取数据的方式
            /// </summary>
            /// <returns></returns>
            [HttpPost]
            public async Task<IHttpActionResult> TestAsync3()
            {
                string aa = await this.Request.Content.ReadAsStringAsync();
                return await Task.FromResult<IHttpActionResult>(Ok(aa));
            }
    
            /// <summary>
            /// 使用强类型接受,返回强类型     推荐这种,输入,输出都新建一个对应的Dto进行处理
            /// </summary>
            /// <param name="inDto">输入类</param>
            /// <returns>输出类</returns>
            [HttpPost]
            public async Task<CommonOutDto> TestAsync4(ToiletInfoInDto inDto)
            {
                CommonOutDto outDto = new CommonOutDto();
                outDto.errcode = 0;          
                return await Task.FromResult(outDto);
            }

     

     

    显示结果:

     

     

     

    可以看到我们的 TestAsync2 接口中,我们的属性小写了,这是自己序列化json数据造成的,俗称:驼峰式。  当然这个是可以设置的,我们在webapiConfig.cs 中可以设置我们的json的属性
      public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
    
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
                //多添加一个action
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
                // 干掉XML序列化器   两种都可以
                //GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
                config.Formatters.Remove(config.Formatters.XmlFormatter);
    
                //配置json数据格式
                JsonMediaTypeFormatter jsonFormatter = config.Formatters.JsonFormatter;
                //忽略循环引用,如果设置为Error,则遇到循环引用的时候报错(建议设置为Error,这样更规范)
                jsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Error;
                //日期格式化,默认的格式也不好看
                jsonFormatter.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
                // 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出
                jsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
                //json中属性开头字母小写的驼峰命名
                //jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            }
        }

     

     

     

    总结:

    1:一般的我们使用Object类型或者强类型来接接收

    2:提高效率,我们是异步

    题外:我们一般都会准备一个Dto来接受我们的json对象,如果你不想这样写,也可以使用JObject来用。

     

    转载于:https://www.cnblogs.com/Sea1ee/p/10438838.html

    展开全文
  • 当我发post请求的json数据过来的时候,如果我用context.Request .Form去收的时候会发现,一小半的json数据跑到了Key里面,其他数据在form[0]中,很奇怪。后来恍然大悟我发送的又不是表单干嘛用表单去接收,然后去用...
  • 请尝试配置连接参数Method 为post, ContentType为application/json,并检查输入参数格式是否匹配再试!"; return rb; } } ``` 我向里接口传入:{Appkey":"ppppp","Sno":"6CBEC166","Clist":["aaaaa","bbbbb",...
  • 所做的 java web 的整体架构非常简单易懂,整个网站以前端为主体,通过ajax与后台数据交互,前后端低耦合,有些面向服务架构的味道。因为博主C#做的比价多,所以也借机用相同的方式玩一玩asp.net。 这篇博客主要...
  • webapi接收集合数据

    千次阅读 2018-04-26 14:51:32
    最近在做一个项目,前端(angularjs)需要传递批量数据webapi。开始想已Get方式提交,结果是单个对象(没问题,但是多个对象集合一起传递时,找不到api方法。 (单对象序列化后的JSON:"[{"REMARK":&...
  • //api传入是json字符串 string strResult = InvokeWebapi ( "网址" , "网站/api/控制器名称" , "POST" , sJson ) . Wait ( ) ; api = DeserializeJsonToObject < ApiResult > ( strResult ) ; //api...
  • WebApi传递JSON参数 接收不到参数

    千次阅读 2015-10-11 17:15:31
    开发过程中经常进行JSON的传递,在WebApi中传递JSON字串时,会发现服务器端接收到不参数值,看下面代码 服务端: public void Post([FromBody]string value) { LoggerHelper.Info("Post:{0}", value); } ...
  • WebApi传递JSON参数

    千次阅读 2015-10-20 19:35:15
    WebApi传递JSON参数
  • 前言 好久没有写博客了,有一天同学问我咋不写了,我说没啥写的,都是...这几天写webapi过程有了一个小发现,可能很多人都知道,我是在网上查了没有找到,经过了尝试,在尝试成功的时候是有人一起做的尝试,所以...
  • 我用Owin创建了webapi,别的功能都正常,但是我碰到一个问题,如果对方post给我一个json(是嵌套的json ,形式是{"count": "3","messages": [{"content": "又是一条信息","accept": [{"id": "1"}, {"id": "2"}, {"id...
  • 一:新建PostParameter类 public class PostParameter { public string Url = ...//接收数据api public string PostData = "{\"Student\":{\"Name\":\"明明\",\"Ag...
  • public string ReturnKingdeeAccount() { string responseJson = ""; try { string WebAPIUrl = ReturnAppSettingValue("Kingdee...
  • 前端传一个json对象,后端用字典接收 byte[] data = new byte[HttpContext.Current.Request.InputStream.Length]; HttpContext.Current.Request.InputStream.Read(data, 0, data.Length); string txt = ...
  • 1.前台代码 /* * 跨域请求Post * 1个对象参数,后台...$.post(apiUrl.getOne("PostFourth"), { name: '张三', age: 12 }, function (data) { alert(data); }); $.ajax({ url: apiUr...
  • 客户端请求内容为序列化后的json串。在后台使用JArray接收。解决Over。服务端public string Post([FromBody]JArray JsonStr) { string i=""; if (JsonStr == null) { return "NULL";...
  • 在做.NET CORE WEBAPI接口案例的时候碰到了前端页面ajax post请求接口时,api接收到的数据为NULL。 在core里面 FromBody对应的是application/json或xml这种格式 FromForm对应的www-for或者form-data这种格式 api...
  • 这里给大家介绍两种POST提交方式,分别是application/...application/json 是微信小程序默认的提交数据方式 wx.request({ url: 'http://localhost:62155/api/User', //仅为示例,并非真实的接口地址 header: {...
  • 提交任务: curl -i -H "Content-Type: application/json" -X POST -d '{" data = request.data ----获取的是字符串 data = request.get_data()
  • public class testController:ApiController { public object Post([FromBody] testparam param) { return param;... 为什么 classh 加了 [Serializable]就接收不到 fiddler post过来的json呢?
  • c++配置http/post请求接收json数据

    千次阅读 2020-01-04 17:48:10
    照着教程编译操作都没问题 首先是配置curl库 给一个别人的编译链接curl库 vs2017:亲测可用 c++编译curl库 测试代码: #include <iostream>...下面是上传json数据代码 (下面以字符串为例子) 我手动...
  • WebAPI 接收js传过来的对象数组数据 百度 Google了一整天 终于 在晚上聊天的时候弄出来了 所以得出结论 写代码一定要分心 结果才能出来 说一下我的需求 需要将如下图的对象数组传递到webapi那边接收 然后进行操作 ...
  • 可同时参见这篇文章 asp.net webapijson传值方式 纠缠了我几天的一个问题,简单摘抄整理下,希望对大家有帮助。 网络上大量使用json格式传递数据json传递数据比较轻量,而用json传递数据就要解决两个问题: 1...
  • C# webapi 解析 json字符串包

    千次阅读 2018-10-07 11:37:51
    步骤一:最好是自己创建一个和json包中字段一样的实体类接收数据(推荐),也可以用原有的实体类 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,457
精华内容 13,782
关键字:

webapi接收json数据post方式