C#网络请求与JSON解析

最新学校的海康摄像头集控平台(网页端)不能在win10里登录,我寻思着拿海康的c# demo直接改。

首先得解决权限问题,每个教师任教不同年级,只能看到自己所在年级的设备,涉及到登录,在此记录一下C#中网络请求和数据处理的一些内容。大致流程为:

  1. 客户端发起登录请求;
  2. 服务端验证账号密码
  3. 返回json字符串,包含用户信息、平台配置等信息
  4. 客户端解析并初始化

一、发起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的界面,真的是太丑了...

原文地址:https://www.cnblogs.com/stargazerzzh/p/10563126.html

时间: 2024-10-07 05:27:29

C#网络请求与JSON解析的相关文章

Flutter - 网络请求与 json 解析

Flutter网络请求与JSON解析 Flutter网络请求与JSON解析 网络请求项目中用了两种,一个是 dart 自己的 dart:io, 另外一个是 dio 这个库. json 解析则用的是 dart:convert. 发起 HTTP 请求 首先我们需要先导入 http 的支持包,然后创建 httpClient. import 'dart:io'; var httpClient = new HttpClient(); HttpClient 支持常见的 get.post.put.delete

iOS 自己封装的网络请求,json解析的类

基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求,代码简单,主要是框架搭建.简单来说,就是一个请求类,一个解析类,还有若干数据类. 以下代码以公开的天气查询api为例: 1.网络请求类 我把常用的网络请求方法都封装好了,你只需要写自己的接口,传递apiName,params等参数就可以. #pragma mark ios请求方式 //ios自带的

网络请求之JSON解析

<一>JSON的基本知识 什么是JSON:JSON的全称是JavaScript Object Notation(JavaScript对象符号),是目前使用最广泛的数据交换格式,具有跨平台.跨语言的优势,而且对照XML,JSON作为数据传输格式时,数据传输量更小,JSON数据格式既适合人来进行读写,又适合计算机本身解析和合成 JSON的数据结构: 由key-value对组成的数据结构,这种数据结构在不同的语言中有不同的实现,例如:在JavaScript中是一个对象,在Objective-C中是一

android中网络请求数据,解析并添加到Listview中

今天我实现了网络请求数据,解析并将数据添加到Listview中.上个星期我有提到说要实现点击Listview中item实现不同的功能,还是没头绪.如有幸被阅读,希望指教一下.我用的是hTTPClient的post方法请求的数据.在实现请求之前,还有一个主activity跳转.代码如下: 请求activity代码: public class MachineInterface extends Activity { private ListView machineType; private Array

IOS - 网络(HTTP请求、同步请求、异步请求、JSON解析数据)

1 // 2 // ViewController.m 3 // IOS_0129_HTTP请求 4 // 5 // Created by ma c on 16/1/29. 6 // Copyright © 2016年 博文科技. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "MBProgressHUD+MJ.h" 11 12 @interface ViewController

Swift 网络请求数据与解析

一: Swift 网络数据请求与处理最常用第三方 又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累.博客一篇写出来,好多就直接照抄,就没有实质性的把问题解决了,只是在发表的博客数量上 + 1 !!真心没意思.. 看看在Swift中是在怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库: 第一个: Alamofire  (它的原作者就是AFNetworking的原作者,这个就不多说了,你要知道AFNetworki

网络请求和json解析

请求使用AFN框架,json解析使用MJExtension框架 封装网络请求考虑扩展性: 协议头:http,https等 服务器地址或域名 API路径 请求方式:get,post等 传递的输入参数类型也不同 注意点: 设置HTTP请求序列化的文件为json格式 json转模型MJExtention: Model *modelResult = [Model objectWithKeyValues:responseObject]; responseObject为服务器返回的json对象 自定义的模型

iOS网络编程开发—JSON解析与XML解析

一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的注意点:key必须用双引号 要想从

iOS网络请求之数据解析

JSON解析 IOS中Json解析的四种方法 NSURLConnection-网络请求浅析 IOS开发:官方自带的JSON使用 XML 解析 GDataXMLNode应用 IOS学习:常用第三方库(GDataXMLNode:xml解析库) [IOS开发]GDataXML解析XML IOS学习之十六:网络数据的XML解析 https://github.com/huluo666/AFNetworkingTest https://github.com/hustbill/weatherTab iOS 操