c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象
来源:互联网 发布:矩阵怎么计算 编辑:程序博客网 时间:2024/06/05 15:53
全栈工程师开发手册 (作者:栾鹏)
c#教程全解
c#实现ajax通信,通过向服务器后台发送json数据,接收响应数据提交给前台。
其中包含两个主要函数,发送数据,接收响应数据的Http请求响应函数。另一个是将对象转化为JSON字符串的序列化函数。
需要下载并在引用空间中引入Newtonsoft.Json.dll,下载
using Newtonsoft.Json.Linq;using Newtonsoft;using Newtonsoft.Json;/// <summary>/// 向服务器后台发送json数据,需要引入Newtonsoft.Json.dll/// </summary>/// <param name="urlpath">请求地址</param>/// <param name="diclist">json键值对</param>/// <returns></returns>public static JObject ajax(string urlpath, Dictionary<String, String> diclist){ HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlpath); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; //设置参数,并进行URL编码 //虽然我们需要传递给服务器端的实际参数是JsonParas(格式:[{"UserID":"0206001","username","ceshi"}]) //但是需要将字符串参数构造成键值对的形式,注:"paramaters=["userid":"206001","username","ceshi"}]" //其中键paramaters为webservice接口函数的参数名,值为经过序列化的Json数据字符串 //最后将字符串参数进行url编码 String poststr = buildQueryStr(diclist); byte[] payload = Encoding.UTF8.GetBytes(poststr); req.ContentLength = payload.Length; //发送请求,获得请求流 Stream writer; try { writer = req.GetRequestStream(); //获取用于写入请求数据的Stream对象 } catch (Exception) { writer = null; MessageBox.Show("连接服务器失败"); return null; } //将请求参数写入流 writer.Write(payload, 0, payload.Length); writer.Close(); //关闭请求流 string strvalue = ""; //srevalue为http响应所返回的字符流 HttpWebResponse response; try { //获得响应流 response = (HttpWebResponse)req.GetResponse(); } catch (WebException ex) { response = ex.Response as HttpWebResponse; } Stream s = response.GetResponseStream(); StreamReader reader = new StreamReader(s); strvalue = reader.ReadToEnd(); reader.Close(); s.Close(); JObject JSONobj = JObject.Parse(strvalue); //lei.ziji = JsonConvert.DeserializeObject<user_me_back>(JSONobj["data".ToString()]); //将字符串转化为类实例 return JSONobj;}//将键值对序列转化为请求网址字符串public static String buildQueryStr(Dictionary<String,String> diclist){ Dictionary<string, string> dd = new Dictionary<string, string>(); dd.Add("key1", "value1"); string aa = dd["key1"]; string poststr = ""; foreach (var item in diclist) { poststr += item.Key + "=" + HttpUtility.UrlEncode(item.Value,Encoding.UTF8)+"&"; } poststr = poststr.Substring(0, poststr.LastIndexOf("&")); return poststr;}
阅读全文
0 0
- c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象
- C# 把对象转换为Json字符串发送
- ajax返回json字符串转换为JSON对象
- jquery通过ajax向后台发送(checkbox)数组,并在后台接收,(发送的数据是checkedbox)
- json字符串转换为对象
- JSON字符串转换为对象
- c#后台将数据转换为json字符串,前台ajax解析json字符串
- 几种常用的ajax配合json数据格式向后台发送请求以及后台如何接收数据
- javascript 转换Json字符串为JSON对象
- JSON字符串转换为JSON对象
- JSON对象转换为JSON字符串
- 前台JSON字符串转换为JSON对象
- js-json字符串转换为json对象
- Json字符串转换为java对象的各种实现方法
- Json字符串转换为java对象的各种实现方法
- ajax实现异步刷新,并通过json接收发送数据!
- .net mvc3.0 中接收 json 数据,并转换为自定义的 C# 对象
- JSON转换工具类-JSON对象转换为字符串-json字符串转换为对象
- sudo给某些用户添加以root权限运行某些命令
- PTA 2.3
- [数位DP] ZROI 2017 提高3 T1 树状数组
- FTPrep, 110 Balanced Binary Tree
- Quartz- Quartz API以及Jobs 和Triggers介绍
- c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象
- 蓝桥杯 算法提高 色盲的民主
- centos基础安装
- Joda-Time 简介
- 反射机制
- java mysql 插入datetime的正确方式(MySQLSyntaxErrorException解决办法)
- erlang 接入远程shell控制台(请重点学习作业JCL模式)
- 10. 模板方法模式
- python xxxA.py 调用 xxxB.py 中的方法