1. 程式人生 > >從kepware定時取web api內容

從kepware定時取web api內容

timers 取字符 cat event winform div sock urn final

  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 }

從kepware定時取web api內容