为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 c# Web Api 2 处理 后台提交的JSON 数据
  • 4
    评论
    18
    分享

c# Web Api 2 处理 后台提交的JSON 数据

标签:
WebApp C#
 关于写这篇手记,纯碎是记录自己做的,关于WebApi 2 怎么获取 由客户端提交的JSON数据。有不足或更好的写法的,请在写在评论中。如果能有对您有一点帮助,我就觉得很高兴了。
 因为不是基础教程,所以不会一步步写。如果您完全没API 的经验,那么可能会看不明白。
 客户端:
//GET请求
  /// <summary>
 /// 后台发送GET请求
 /// </summary>
 /// <param name="url">服务器地址</param>
 /// <param name="data">发送的数据</param>
 /// <returns></returns>
 public string HttpGet(string url, string data)
 {
   try
   {
     //创建Get请求
     url = url + (data == "" ? "" : "?") + data;
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
     request.Method = "GET";
     request.ContentType = "text/html;charset=UTF-8";
 
     //接受返回来的数据
     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     Stream stream = response.GetResponseStream();
     StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
     string retString = streamReader.ReadToEnd();
 
     streamReader.Close();
     stream.Close();
     response.Close();
 
     return retString;
   }
   catch (Exception)
   {
     return "";
   }
 }
//POST 请求
 public string HttpPost2(string url = "", int id = 0)
 {
 try
 {
 url = "http://localhost:3526/api/Product/GetProductByID2";
 string data = "{\"id\":3,\"name\":\"李\",\"ename\":\"Allex\"}";
 //创建post请求
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
 request.Method = "POST"; //POST请求
 //request.ContentType = "application/json;charset=UTF-8";
 request.ContentType = "text/json;charset=UTF-8";
 byte[] payload = Encoding.UTF8.GetBytes(data);
 request.ContentLength = payload.Length;
 //发送post的请求
 Stream writer = request.GetRequestStream();
 writer.Write(payload, 0, payload.Length);
 writer.Close();
 //接受返回来的数据
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 Stream stream = response.GetResponseStream();
 StreamReader reader = new StreamReader(stream, Encoding.UTF8);
 string value = reader.ReadToEnd();
 reader.Close();
 stream.Close();
 response.Close();
 return value;
 }
 catch (Exception ex)
 {
 string errorMsg = ex.Message;
 return "";
 }
 }
 WEB API2 :
 //如果使用GET 请求,那么会报错,没匹配到方法哦
 [HttpPost]
 public IHttpActionResult GetProductByID2()
 {
 byte[] byts = new byte[HttpContext.Current.Request.InputStream.Length];
 //byts = by;
 HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length);
 string req = System.Text.Encoding.UTF8.GetString(byts);
 //HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length);
 // string data = Request.get["data"].;
 int id = 1;
 var product = products.FirstOrDefault(m => m.ID == id);
 if (product == null)
 {
 return NotFound();
 }
 else
 {
 return Json(product);
 }
 }

图片描述
图片描述
结果:图片描述

这单纯是一个硬编码,API 中有一个接口,通过ID ,获取产品的信息,以JSON数据返回(客户端请求需要设置 request.ContentType = "text/json;charset=UTF-8";)

图片二:看到由客户端提交的JSON数据
1.如果提交的是整个要保存的实体,那么直接反序列化,再通过EF 保存即可
2.如果提交的数据很多,但只有部分需要保存,那么将JSON 转为 Dictionary后,再获取所需数据

暂时先写到这里,之后再修改

点击查看更多内容
发表于 2016年06月08日 15:50, 共 55039 人浏览

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

4人点赞

若觉得本文不错,就分享一下吧!

评论
评论

共同学习,写下你的评论

评论加载中...

展开查看更多评论

作者其他优质文章

正在加载中
学生
手记
粉丝
4
获赞与收藏
212

关注作者,订阅最新文章

阅读免费教程

  • 4
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的〜
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

慕课手记新用户专享福利
恭喜你,你的运气太好了,居然抽中了 100个积分!
恭喜你,抽中了价值 元的专栏 !
太棒了, 直接落到你账户里!
积分商城里的罗技鼠标、机械键盘、
Kindle 阅读器、小米平衡车
Apple iPad (10.2英寸)、大额优惠券
在等着你去兑换了噢
作者:
免费赠送
兑换码:1111222211
优惠券可用于购买实战课、体系课
无门槛使用
先去看看,有什么好东西 马上兑换 我爱学习,选课去
帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

举报

0/150
提交
取消

AltStyle によって変換されたページ (->オリジナル) /