C#网络请求与JSON解析的示例代码
程序员文章站
2022-06-21 09:43:41
最新学校的海康摄像头集控平台(网页端)不能在win10里登录,我寻思着拿海康的c# demo直接改。
首先得解决权限问题,每个教师任教不同年级,只能看到自己所在年级的设备...
最新学校的海康摄像头集控平台(网页端)不能在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库,信息如下:
官网:
源码地址: 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的界面,真的是太丑了...
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 对python中两种列表元素去重函数性能的比较方法
下一篇: C#创建Windows服务的实现方法