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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 利用JavaScript将Excel转换为JSON示例代码

    前言 JSON是码农们常用的数据格式,轻且方便,而直接手敲JSON却是比较麻烦和令人心情崩溃的(因为重复的东西很多),所以很多码农可能会和我一样,选择用Excel去输入数据,然后再想办法转换成JSON格式.今天教大家使用JS 将 Excel 转为 JSON的方法. 1.新建HTML文件 <html lang="en"> <title> Convert Excel File To JSON </title> <head> <scrip

  • Python爬取数据保存为Json格式的代码示例

    python爬取数据保存为Json格式 代码如下: #encoding:'utf-8' import urllib.request from bs4 import BeautifulSoup import os import time import codecs import json #找到网址 def getDatas(): # 伪装 header={'User-Agent':"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.1

  • 基于Koa(nodejs框架)对json文件进行增删改查的示例代码

    想使用nodejs(koa)搭建一个完整的前后端,完成数据的增删改查,又不想使用数据库,那使用json文件吧. 本文介绍了基于koa的json文件的增.删.改.查. 代码准备 const Koa = require('koa') const bodyParser = require('koa-bodyparser') const Router = require('koa-router') const fs = require('fs') const path = require('path')

  • JS中的JSON对象的定义和取值实现代码

    1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包. JSON的规则很简单:对象是一个无序的"'名称:值'对"集合.一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"'名称/值'对&qu

  • 七行JSON代码把你的网站变成移动应用过程详解

    如果我告诉你,只需要 下述 7 行橙色的 JSON 代码 就可以将一个网站变成移动应用,你相信吗? 完全不需要使用某种框架 API 重写网站,就可以获得与移动应用相同的行为.如果你已经有一个现成的网站,只需要简单地引用 URL 就可以将其"打包"为原生应用. 而如果在此基础上,只需要略微调整 JSON 代码内容,就可以直接访问所有原生 API.原生 UI 组件以及原生视图切换(View Transition).最简化的范例效果如下图所示: 从中可以看出,我嵌入了一个 Web 页面,但界

  • ASP 处理JSON数据的实现代码

    ASP也能处理JSON数据?呵呵,刚才在Pjblog论坛上看到一个兄弟写的文章,没有测试,不过理论上一定是可以的~ 太晚了,不测试了. 以前处理JSON太麻烦了,输出还好说,循环一下就可以了,解析真的很头疼.所以遇到 这种问题API问题,一般都是XML处理,不太喜欢,很麻烦. <% Dim sc4Json Sub InitScriptControl Set sc4Json = Server.CreateObject("MSScriptControl.ScriptControl")

  • Delphi中使用ISuperObject解析Json数据的实现代码

    Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即IsuperObject.如果还没有这个组件的请在网上搜索下载或者在下面留言处留下你的邮箱向本人索取. 下面先说一下ISuperObject中几个常用的函数 function SO(const s: SOString = '{}'): ISuperObject; overload; 此函数传入json数据字符串

  • js循环map 获取所有的key和value的实现代码(json)

    下面的方法一语方法二都是经过我们小编测试并运行的 方法一: json格式定义 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

  • C#网络请求与JSON解析的示例代码

    最新学校的海康摄像头集控平台(网页端)不能在win10里登录,我寻思着拿海康的c# demo直接改. 首先得解决权限问题,每个教师任教不同年级,只能看到自己所在年级的设备,涉及到登录,在此记录一下C#中网络请求和数据处理的一些内容.大致流程为: 客户端发起登录请求: 服务端验证账号密码 返回json字符串,包含用户信息.平台配置等信息 客户端解析并初始化 一.发起GET请求 private string HttpGet(string api) { string serviceAddress =

  • 微信小程序网络请求实现过程解析

    这篇文章主要介绍了微信小程序网络请求实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 配置服务器域名: 每个微信小程序需要事先设置一个通讯域名,小程序只可以跟指定的域名进行网络通信. 服务器域名在:小程序后台=> 开发=> 开发设置 => 服务器域名中配置,配置时需注意: 1.域名只支持https(request, uploadFile,downloadFile)和wss(connectSocket)协议. 2.域名不能使用i

  • C/C++ QT实现解析JSON文件的示例代码

    JSON是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集,使用完全独立于编程语言的文本格式来存储和表示数据,简洁清晰的的层次结构使得JSON成为理想的数据交换语言,Qt库为JSON的相关操作提供了完整的类支持. 创建一个解析文件,命名为config.json我们将通过代码依次解析这个JSON文件中的每一个参数,具体解析代码如下: { "blog": "https://www.cnblogs.com/lyshark", "enable&qu

  • python实现xml转json文件的示例代码

    使用了Python的 xml.etree.ElementTree 库 xml.etree.ElementTree 库简介 xml.etree.ElementTree模块实现了一个简单而高效的API用于解析和创建XML数据.xml.etree.ElementTree模块对于恶意构造的数据是不安全的.如果您需要解析不受信任或未经验证的数据,请参阅XML漏洞. 参考文献:https://docs.python.org/3.6/library/xml.etree.elementtree.html fro

  • web项目开发中2个Token原因解析及示例代码

    目录 问题: 项目中2个Token, 一个时效2个小时(简称:短Token), 另一个时效14天(简称:长Token), 为什么要用2个Token? 解答: 1.基于安全性, 防止Token泄露的考虑, 服务器资源中所有的请求都只能使用短Token, 并且短Token只有2小时时效; 这个方法依然无法完全解决防止Token泄露的问题, 只是在一定程度上提高防止Token泄露的安全性; 长Token的作用只有一个, 就是短Token时效了的时候, 用长Token去请求获取新的短Token, 只有这

  • C/C++实现HTTP协议解析的示例代码

    超文本传输协议 (HTTP) 是分布式.协作.超媒体信息系统的应用层协议. 这是自 1990 年以来万维网数据通信的基础.HTTP 是一种通用且无状态的协议,它可以用于其他目的,也可以使用其请求方法.错误代码和标头的扩展. 基本上,HTTP 是一种基于 TCP/IP 的通信协议,用于通过 Web 传递 HTML 文件.图像文件.查询结果等数据. 它为计算机之间的通信提供了一种标准化的方式. HTTP 规范指定了客户端请求的数据如何发送到服务器,以及服务器如何响应这些请求. HTTP客户端和服务器

  • 使用Apache commons-cli包进行命令行参数解析的示例代码

    Apache的commons-cli包是专门用于解析命令行参数格式的包. 依赖: <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.3.1</version> </dependency> 使用此包需要: 1.先定义有哪些参数需要解析.哪些参数有额外的选项.每个参数的描述等等,对应

  • 微信小程序 POST请求(网络请求)详解及实例代码

    微信小程序 POST请求 微信小程序开发中网络请求必不可少.GET.POST请求是最常用的.GET请求,POST请求的时候有好几个坑.我已经为大家填好了. <img src="http://img.blog.csdn.net/20161017170933243?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Cente

  • Python实现XML文件解析的示例代码

    1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性. test.XML文件 <?xml version="1.0" encoding="utf-8"?> <catalog> <m

  • 在java中使用dom4j解析xml(示例代码)

    虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: 复制代码 代码如下: <?xml version="1.0" encoding=&quo

随机推荐