C#网络请求与JSON解析的示例代码
最新学校的海康摄像头集控平台(网页端)不能在win10里登录,我寻思着拿海康的c# demo直接改。
首先得解决权限问题,每个教师任教不同年级,只能看到自己所在年级的设备,涉及到登录,在此记录一下C#中网络请求和数据处理的一些内容。大致流程为:
- 客户端发起登录请求;
- 服务端验证账号密码
- 返回json字符串,包含用户信息、平台配置等信息
- 客户端解析并初始化
一、发起GET请求
private string HttpGet(string api) { string serviceAddress = api; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); //返回json字符串 return myStreamReader.ReadToEnd(); }
建议在子线程中调用,避免阻塞引起程序假死:
Task task1 = new Task(() => { string response = HttpGet("http://172.16.0.239:9002/lg.php?action=checkNotice"); this.Invoke((MethodInvoker)(() =>//子线程中操作UI { label1.Text = response;//于程序界面显示 })); Console.WriteLine(response);//于控制台打印 }); task1.Start();
效果如图:
二、JSON数据解析
在C#中,需要引入Newtonsoft.Json库,信息如下:
官网: http://json.codeplex.com/
源码地址: https://github.com/JamesNK/Newtonsoft.Json
Newtonsoft.Json.dll下载: https://github.com/JamesNK/Newtonsoft.Json/releases
再将返回的response字符串进行如下处理:
JObject json = (JObject)JsonConvert.DeserializeObject(response); Console.WriteLine(json); Console.WriteLine(json["code"]); Console.WriteLine(json["content"]);
即可以对象的形式访问:
还是准备去研究Electron,winform的界面,真的是太丑了...
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
上一篇:C#统计字符串的方法
栏 目:C#教程
本文标题:C#网络请求与JSON解析的示例代码
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/4819.html
您可能感兴趣的文章
- 01-10C#通过重写Panel改变边框颜色与宽度的方法
- 01-10C#实现实体类与字符串互相转换的方法
- 01-10C#实现子窗体与父窗体通信方法实例总结
- 01-10时间戳与时间相互转换(php .net精确到毫秒)
- 01-10基于C#实现简单离线注册码生成与验证
- 01-10C#开发中的垃圾回收机制简析
- 01-10C#编程实现对象与JSON串互相转换实例分析
- 01-10C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步
- 01-10轻松学习C#的装箱与拆箱
- 01-10C#定制Excel界面并实现与数据库交互的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 04-02jquery与jsp,用jquery
- 01-10SublimeText编译C开发环境设置
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10C#中split用法实例总结
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11ajax实现页面的局部加载
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10delphi制作wav文件的方法