从kepware定时取web api内容

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 using Newtonsoft.Json.Linq;
 10 using Newtonsoft.Json;
 11 using System.Threading.Tasks;
 12 using System.Net.Sockets;
 13 using System.IO;
 14 using System.Net;
 15 using System.Timers;
 16
 17
 18 //从kepware取web api内容
 19
 20
 21 namespace kepware_winform_rec
 22 {
 23     public partial class Form1 : Form
 24     {
 25         public Form1()
 26         {
 27             InitializeComponent();
 28         }
 29
 30         string[] nArray = new string[100];
 31
 32         private void Form1_Load(object sender, EventArgs e)
 33         {
 34
 35
 36          //遍历本机的kep web api
 37             string ValueName = Get("http://192.168.1.9:39320/iotgateway/browse");
 38             JObject json1 = (JObject)JsonConvert.DeserializeObject(ValueName);
 39             JArray array = (JArray)json1["browseResults"];
 40             //MessageBox.Show(array.ToString());
 41             string aa = "";
 42             foreach (var jObject in array)
 43             {
 44                 //赋值属性
 45                 aa = jObject["id"].ToString();//获取字符串中id值
 46                 listBox1.Items.Add(aa);
 47             }
 48
 49             for (int i = 0; i < listBox1.Items.Count; i++)
 50             {
 51                 nArray[i] = listBox1.GetItemText(i);
 52
 53             }
 54
 55             System.Timers.Timer maxTimer = new System.Timers.Timer();
 56             maxTimer.Elapsed += new ElapsedEventHandler(Tmr_Elapsed);
 57             // 设置引发时间的时间间隔 此处设置为1秒(1000毫秒)
 58             maxTimer.Interval = 3000;
 59             maxTimer.Enabled = true;
 60         }
 61
 62         public void Rec()
 63         {
 64             try
 65             {
 66                 for (int i = 0; i < listBox1.Items.Count; i++)
 67                 {
 68                     string value = Get("http://127.0.0.1:39320/iotgateway/read?ids=" + listBox1.Items[i].ToString());
 69                     JObject json2 = (JObject)JsonConvert.DeserializeObject(value);
 70                     JArray array2 = (JArray)json2["readResults"];
 71                     //MessageBox.Show(json2.ToString());
 72                     //MessageBox.Show(array2.ToString());
 73                     string aa2 = "";
 74                     foreach (var jObject in array2)
 75                     {
 76                         //赋值属性
 77                         aa2 = jObject["v"].ToString();//获取字符串中id值
 78                         listBox2.Items.Add(aa2);
 79                     }
 80                 }
 81             }
 82             catch
 83             { }
 84         }
 85
 86         private void Tmr_Elapsed(object sender, ElapsedEventArgs e)
 87         {
 88             listBox2.Items.Clear();
 89             Rec();
 90         }
 91
 92
 93
 94         /// <summary>
 95         /// 指定Url地址使用Get 方式获取全部字符串
 96         /// </summary>
 97         /// <param name="url">请求链接地址</param>
 98         /// <returns></returns>
 99         public static string Get(string url)
100         {
101             string result = "";
102             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
103             HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
104             Stream stream = resp.GetResponseStream();
105             try
106             {
107                 //获取内容
108                 using (StreamReader reader = new StreamReader(stream))
109                 {
110                     result = reader.ReadToEnd();
111                 }
112             }
113             finally
114             {
115                 stream.Close();
116             }
117             return result;
118         }
119
120         private void button1_Click(object sender, EventArgs e)
121         {
122             Rec();
123         }
124
125     }
126 }

原文地址:https://www.cnblogs.com/dXIOT/p/9999821.html

时间: 2024-10-24 00:47:27

从kepware定时取web api内容的相关文章

Winform实现抓取web页面内容的方法

本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考. 具体实现代码如下: WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetRespo

Winfrom 抓取web页面内容代码

WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.

Web API 1入门之Self-Host寄宿及路由原理(二)

前言 刚开始表面上感觉Web API内容似乎没什么,也就是返回JSON数据,事实上远非我所想,不去研究不知道,其中的水还是比较深,那又如何,一步一个脚印来学习都将迎刃而解. Self-Host 我们知道Web API它可以快速为HTTP客户端提供API来创建Web服务,为何如此这样说呢?因为我们可以将其作为主机也就是一个服务器来用完全不需要IIS,这就是我们下面要讲的第一个内容Self-Host,实现对Web API寄宿的方式有多种并且都是独立于ASP.NET框架之外,如下Self-Host寄宿

Java实现web页面内容抓取

1 package demo; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.InputStreamReader; 7 8 /** 9 * web页面内容抓取 10 * @author sy 11 * 12 */ 13 public class GrabWebHtml{ 14 15 public static void

HttpClient与APS.NET Web API:请求内容的压缩与解压

首先说明一下,这里的压缩与解压不是通常所说的http compression——那是响应内容在服务端压缩.在客户端解压,而这里是请求内容在客户端压缩.在服务端解压. 对于响应内容的压缩,一般Web服务器(比如IIS)都提供了内置支持,只需在请求头中包含 Accept-Encoding: gzip, deflate ,客户端浏览器与HttpClient都提供了内置的解压支持.HttpClient中启用这个压缩的代码如下: var httpClient = new HttpClient(new Ht

Web APi之捕获请求原始内容的实现方法以及接受POST请求多个参数多种解决方案(十四)

前言 我们知道在Web APi中捕获原始请求的内容是肯定是很容易的,但是这句话并不是完全正确,前面我们是不是讨论过,在Web APi中,如果对于字符串发出非Get请求我们则会出错,为何?因为Web APi对于简单的值不能很好的映射.之前我们谈论过请求内容注意事项问题,本节我们将更加深入的来讨论这个问题,我们会循序渐进进行探讨,并给出可行的解决方案,.细细品,定让你收货多多! 捕获请求原始内容实现方法 捕获复杂属性值 Web APi对于复杂属性值以JSON或者XML的形式成功发送到服务器,基于这点

Web API对application/json内容类型的CORS支持

假设有一简单架构分为前后两部分,其一是Angular构成的前端页面站点,另一个则是通过ASP.NET Web API搭建的后端服务站点.两个站点因为分别布署,所有会有CORS(Cross-Origin Resource Sharing)的问题. 再假设后端已经对此做好相应配置,比如在web.config里加上了: <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" v

【ASP.NET Core】从向 Web API 提交纯文本内容谈起

前些时日,老周在升级“华南闲肾回收登记平台”时,为了扩展业务,尤其是允许其他开发人员在其他平台向本系统提交有关肾的介绍资料,于是就为该系统增加了几个 Web API. 其中,有关肾的介绍采用纯文本方式提交,大概的代码是这样的. [Route("api/[controller]/[action]")] public class PigController : Controller { [HttpPost] public string KidneyRemarks([FromBody]str

2种方式解决nginx负载下的Web API站点里swagger无法使用

Web API接口站点,引入了swagger来实时生成在线的api文档,也便于api接口的在线测试.swagger:The World's Most Popular Framework for APIs. 本地测试没有问题. 发布到生产,问题出现了.——线上部署的站点是用nginx做的3个节点的负载.nginx配置了公开的域名,并且与3个节点iis上的站点做了映射.3个单节点的端口不是默认的80,由此问题产生了:当访问swagger时,swagger自动获取的文档的url包含了这个端口,因为站点