精华内容
下载资源
问答
  • 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

    展开全文
  • webapi接收集合数据

    千次阅读 2018-04-26 14:51:32
    最近在做一个项目,前端(angularjs)需要传递批量数据webapi。开始想已Get方式提交,结果是单个对象(没问题,但是多个对象集合一起传递时,找不到api方法。 (单对象序列化后的JSON:"[{"REMARK":&...

           最近在做一个项目,前端(angularjs)需要传递批量数据到webapi。开始想已Get方式提交,结果是单个对象(没问题,但是多个对象集合一起传递时,找不到api方法。  (单对象序列化后的JSON:"[{"REMARK":"备注","TYPE":"测试"}]",多对象序列化后的JSON:"[{"REMARK":"备注","TYPE":"测试"},{"REMARK":"备注1","TYPE":"测试1"}]",后台有此对象对应的实体)

            没办法,只好改用post方式提交。这次可以找到后台方法,但是又出现了新的问题,后台一直接收到的都是null。网上查来查去最后发现,后台接收数据类型定义成动态类型(dynamic)可以接收到数据,到此终于有了进展,还是挺开心的。

          数据是接收到了,可是接收到的是dynamic类型的,这个类型的数据该怎么使用呢,继续问度娘吧。结果发现网上说的都是直接当做对象使用,或者可以直接强转成对应的实体类集合。这个挺好,试试吧。结果悲剧了,各种错误,完全行不通。没办法只能自己来,仔细观察接收到的dynamic数据,发现反序列JSON失败的原因,是因为接收到的数据不是标准JSON格式,像("data": "{\"Test\":\"[{\\\"REMARK":\\\"备注\\\",\\\"TYPE\\\":\\\"测试\\\"},{\\\"REMARK\\\":\\\"备注1\\\",\\\"TYPE\\\":\\\"测试1\\\"}]\"}")这样,所以反序列化的时候失败。

           所以想要反序列化成功,需要把数据转成成标准JSON格式。我是这样处理的,先用Convert.ToString()把dynamic类型转化成string,然后截取集合部分即:{\\\"REMARK":\\\"备注\\\",\\\"TYPE\\\":\\\"测试\\\"},{\\\"REMARK\\\":\\\"备注1\\\",\\\"TYPE\\\":\\\"测试1\\\"}],最后再用replace方法把\\\替换成"",得到的数据就可以反序列化成集合对象了。

          第一次写着玩,或许问题很简单,留着做个纪念吧。描述的不好,敬请谅解。


    展开全文
  • 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;
            }
    

    展开全文
  • 接口文档: !... !... !...接收代码: ... MY.LOGReadWrite.Write(set.path.logpath, "收到定时提醒请求,请求数据为:" + Json.JsonConvert<Input>.ObjectToJson(input));...如果我不要这个参数了,是可以正常接收数据的。
  • post数据格式如下: [img=https://img-bbs.csdn.net/upload/201712/27/1514363915_996912.png][/img] 圈出来的event_content的格式未知,要根据type来解析的。但是我后端设置event_content对应不管是string/object...
  • 一:新建PostParameter类 ...http://localhost:1725/api/WebApi";//接收数据的api public string PostData = "{\"Student\":{\"Name\":\"明明\",\"Ag...

    一:新建PostParameter类

        public class PostParameter
        {
            public string Url = "http://localhost:1725/api/WebApi";//接收数据的api
            public string PostData = "{\"Student\":{\"Name\":\"明明\",\"Age\":\"18\"}}";//测试json参数
            public string ContentType = "text/plain; charset=utf-8";//http标头
            public string Method = "Post";//post方法
            public int Timeout = 12000;//逾期值
    
        }

    二: 发送数据

            public ActionResult Index()
            {
                PostParameter mod = new PostParameter(); //实例化配置参数           
                Uri uri = new Uri(mod.Url);
                HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri);//配置url
                webrequest.ContentType = mod.ContentType;//设置http标头值
                webrequest.Method = mod.Method;//post方法
                webrequest.Timeout = mod.Timeout;//设置逾期值(毫秒)
                webrequest.Credentials = CredentialCache.DefaultCredentials;//设置应用程序的系统凭据
                using (Stream requstStream = webrequest.GetRequestStream())//将数据写入流中
                {
                    byte[] paramBytes = Encoding.UTF8.GetBytes(mod.PostData);
                    requstStream.Write(paramBytes, 0, paramBytes.Length);
                    requstStream.Close();
                }
                HttpWebResponse httpWebResponse = (HttpWebResponse)webrequest.GetResponse();//如果您调用GetRequestStream方法,则必须使用GetResponse方法以检索响应。
                if (httpWebResponse.StatusCode == HttpStatusCode.OK)//响应成功
                {
                    using (StreamReader responseStream = new StreamReader(httpWebResponse.GetResponseStream()))//读取数据
                    {
    
                        String ret = responseStream.ReadToEnd();
                    }
                }
                return View();
            }

    三:新建接收json数据的实体

            public class People
            {
                public Msg Student { get; set; }
            }
            public class Msg
            {
                public string Name { get; set; }
                public int Age { get; set; }
            }

    四:接收并转化数据

        public class WebApiController : ApiController
        {
      
            [HttpPost]
            public string PostData(HttpRequestMessage  req)//获取HTTP请求消息
            {
                var content = req.Content.ReadAsStringAsync().Result;//以非同步作业方式将HTTP内容序列化至字符串
                People peo = Newtonsoft.Json.JsonConvert.DeserializeObject<People>(content);//将json字符串转化成实体数据
                string name= peo.Student.Name;
                int age = peo.Student.Age;
                return content;
                
            }
    }

    成功获取数据

     

    展开全文
  • WebAPi接收xml格式数据。解决方案

    千次阅读 2019-08-14 15:47:47
    WebAPi接收xml格式数据,会出现“从客户端(messageText="<?xml version="1.0" ...")中检测到有潜在危险的 Request.Form 值。” ,在Action上面加一个标识 [ValidateInput(false)]即可 [ValidateInput(false)]...
  • 前端传一个json对象,后端用字典接收 byte[] data = new byte[HttpContext.Current.Request.InputStream.Length]; HttpContext.Current.Request.InputStream.Read(data, 0, data.Length); string txt = ...
  • 在做.NET CORE WEBAPI接口案例的时候碰到了前端页面ajax post请求接口时,api接收到的数据为NULL。 在core里面 FromBody对应的是application/json或xml这种格式 FromForm对应的www-for或者form-data这种格式 api...
  • 这两天对接第三方系统,需要接收及返回xml的数据,采用WebApi来进行处理,使用post来传输数据,代码如下: [HttpPost] public string Test() { string xmlReturn = “”; int i = 1; if(i == 1){ //接收到xml数据...
  • WebAPI接收js传过来的对象数组数据

    千次阅读 2020-06-17 21:12:38
    WebAPI 接收js传过来的对象数组数据 百度 Google了一整天 终于 在晚上聊天的时候弄出来了 所以得出结论 写代码一定要分心 结果才能出来 说一下我的需求 需要将如下图的对象数组传递到webapi那边接收 然后进行操作 ...
  • 【2】 判断当前页面是否接收到了Post请求  context.Request.HttpMethod.ToLower().Equals("post") 【3】当前页面获取到的参数和参数值 参考 https://q.cnblogs.com/q/108321/ context.Request.Form....
  • 学习WebApi时间较短,在一个项目中需要向WebApi发送数据,但是使用C#调用WebApiPost)时总返回400错误,找了很久,总以为是调用方法有问题,后来发现其实是WebApi中,Post方法参数的问题。下面是测试代码: 实体:...
  • Net Core WebAPIpost传值与接收问题。

    千次阅读 2020-02-20 13:56:03
    昨天在与后端接口对接的时候出现一个问题,死活接收不到post传的参数。 我在前端post用json的方式传了一个id到api接口,但是后端就是死活接不到。在swagger里测试接口发现传输的数据是拼接在url上的。这样就能接到。...
  • application/x-www-from-urlencoded,会将表单内的数据转换为键值对,&分隔。 当form的action为get时,...当form的action为post时,浏览器将form数据封装到http body中,然后发送到server。 这个格式不能提交文件。
  • .net Core WebApi 用WebClient提交POST数据

    千次阅读 2019-03-10 14:15:27
    最近在研究.net Core ...今天在学习是遇到WebAPI POST数据接收的问题,将其中的解决方案做一下笔记。 1. 复杂实体类型: 服务端代码: [HttpPost()] public void Post([FromBody] ServerInfo SI) { Global.Dat...
  • 用来测试webapi 后台 接收前台数据的代码,写的有点乱,需要自行查看。本来想把代码写进md文档的,后来嫌麻烦
  • $.post("/api/facstate/delete", { id: selectRow.ID }, ajaxResultHandler); ``` 后台代码: ``` public JsonRes Delete([FromBody]int id) { var count = bll.DelBy(p => p.ID == id); if (count == ...
  • 前一篇博客讲了Get模式下的传递、接收参数的几种方法,现在来介绍一下Post模式下传递、接收参数的几种方法。首先还是老样子,创建一个空的ASP.NET WebAPI工程,在Models文件夹下创建一个实体类:User,代码如下: ...
  • //api传入是json字符串 string strResult = InvokeWebapi ( "网址" , "网站/api/控制器名称" , "POST" , sJson ) . Wait ( ) ; api = DeserializeJsonToObject < ApiResult > ( strResult ) ; //api...
  • .NET Core WebAPI post参数传递时后端的接收方式 自从前台用了Vue 的 axios 之后, 前后台交互默认变成了request pyload模式, 传过来的数据默认变成了. application/json 传递数据的格式见下图. 既然是进入了新的时代...
  • 1:新建的web api项目 默认的访问api方式:(get,post,delect,put)api+控制器 以Post为例子 post提交单个参数: 接收方法 post提交多个参数 接收方式: 1:单个参数 就是AJAX的data:{“”“,”"123123...
  • 2.JObject方式(适用于单参数或多参数情况,又不想用实体类方式接收) JObject需要using Newtonsoft.Json.Linq;// 这里的Newtonsoft.Json要求是11.0.2版本以上支持,而该版本可能需要升级你的nuget管理器来安装...
  • WebAPI接收二维数组

    2018-01-29 17:38:40
    做安卓手持时,需要将扫描到的轮胎条码号传递给后台接口,由于是二维...前台post数据: items: any = { 'one': [], 'two': [], 'three': [], 'four': [], 'five': [] }; inStorageConfim() { if (this.items
  • .NET Core WebAPI post参数传递时后端的接收方式 实体类 dynamic动态类型 JObject参数(推荐) 单值参数(字符串参数) A.前端Post请求代码 $.ajax({ url: "/api/student/poststudent", type: 'POST', data:JSON....
  • GET请求的参数是通过URL来传递的,而POST请求则是通过HTTP的请求体中传过来的,.Net WebAPIPOST请求也需要从HTTP的请求体里面去取参数。传输单个值时,可以通过URL参数或者FromBody来传输接收,那么传输多个值时...
  • ASP.NET Core Web API接收文件传输

    万次阅读 2018-04-18 16:43:55
    ASP.NET解析API参数的方式有很多种,包括[FromBody],[FromForm],[FromServices],[FromHeader][FromQuery].文件传输方式也分很多种,包括1) 前端读取文件内容,将内容以text/xml/json/binary等形式传输。2)前端不做...
  • web api通过post请求做查询,隐藏传递的参数

    千次阅读 热门讨论 2019-03-17 20:16:52
    我们正常写web api 的时候,查询一般用的都是get请求,但是问题就是get请求会把你传递的参数会直接暴露在url中,如果你的参数有重要的信息,这个时候get请求就不安全了,那我们只能用post请求了。 我们正常写的...
  • 今天在web api中遇到了这样一个问题,虽然api的参数类型是string,但只能接收post body中json格式的string,不能接收原始string。 web api是这样定义的: public async Task<HttpResponseMessage> Post(string...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,617
精华内容 26,246
关键字:

webapi接收post数据