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 }