17,740
社区成员
发帖
与我相关
我的任务
分享
private void button2_Click(object sender, EventArgs e)
{
//创建一个请求示例
//HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://api.heclouds.com/devices/datapoints?devIds=527240946");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://api.heclouds.com/devices/datapoints?devIds=527240946");
//添加头(设置api-key)
request.Headers["api-key"] = "OguztSiBglhJiDO=49nPj3R1miE=";
//获取响应,即发送请求
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
//读取响应
string str = streamReader.ReadToEnd();
dynamic obj = JsonConvert.DeserializeObject<dynamic>(str);
string result1 = ((JObject)obj["data"])["devices"].ToString();
MessageBox.Show(result1);//这句话是输出最后获取的结果
}
LogHelper log = LogHelper.GetInstance();
try
{
string jsons = "{\"devices\":[{\"title\":\"监控终端\",\"id\":\"527240946\",\"datastreams\":[{\"at\":\"2019-07-19 23:24:01\",\"id\":\"3200_0_5500\",\"value\":true},{\"at\":\"2019-07-19 23:23:48\",\"id\":\"3315_0_5700\",\"value\":120000},{\"at\":\"2019-07-19 23:23:36\",\"id\":\"3303_0_5700\",\"value\":49},{\"at\":\"2019-07-19 23:23:42\",\"id\":\"3325_0_5700\",\"value\":0},{\"at\":\"2019-07-19 23:23:53\",\"id\":\"3304_0_5700\",\"value\":5}]}]}";
JObject rss = JObject.Parse(jsons);
JArray datastreams = (JArray)rss["devices"][0]["datastreams"];
foreach (var Item in datastreams) {
log.WriteInfoLog("at:" + Item["at"].ToString());
log.WriteInfoLog("id:" + Item["id"].ToString());
log.WriteInfoLog("value:" + Item["value"].ToString());
}
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
string json = JsonConvert.SerializeObject("nice", Newtonsoft.Json.Formatting.Indented, timeFormat);
context.Response.Write(json);
context.Response.End();
}
catch (Exception ex){}
算了给你全给你写了吧
输出结果
id=>527240946 title=>监控终端
-----------------------------------------------------------
id=>3315_0_5700 At=>2019-07-28 17:58:28 Value=>100322
id=>3325_0_5700 At=>2019-07-28 17:58:31 Value=>1
id=>3303_0_5700 At=>2019-07-28 17:56:17 Value=>29.8
id=>3304_0_5700 At=>2019-07-28 17:58:28 Value=>536876872
id=>3200_0_5500 At=>2019-07-28 17:56:20 Value=>False
请按任意键继续. . .
源代码。在你基础上改的
using Newtonsoft.Json;
using System;
using System.IO;
using System.Net;
using System.Text;
namespace ConsoleApp2
{
/*
{
"errno": 0,
"data": {
"devices": [
{
"title": "监控终端",
"id": "527240946",
"datastreams": [
{
"at": "2019-07-28 17:58:31",
"id": "3325_0_5700",
"value": 1
},
{
"at": "2019-07-28 17:56:17",
"id": "3303_0_5700",
"value": 29.8
},
{
"at": "2019-07-28 17:58:28",
"id": "3315_0_5700",
"value": 100322
},
{
"at": "2019-07-28 17:56:20",
"id": "3200_0_5500",
"value": false
},
{
"at": "2019-07-28 17:58:28",
"id": "3304_0_5700",
"value": 5.36876872E8
}
]
}
]
},
"error": "succ"
}
*/
public class ErrorInfo
{
public int Errno { get; set; }
public ErrorInfoData Data { get; set; }
public string Error { get; set; }
}
public class ErrorInfoData
{
public int Count { get; set; }
public Device[] Devices { get; set; }
}
public class Device
{
public string Id { get; set; }
public string Title { get; set; }
public Datastream[] Datastreams { get; set; }
}
public class Datastream
{
public string Id { get; set; }
public string At { get; set; }
public dynamic Value { get; set; }
}
class Program
{
static void Main(string[] args)
{
//创建一个请求示例
//HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://api.heclouds.com/devices/datapoints?devIds=527240946");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://api.heclouds.com/devices/datapoints?devIds=527240946");
//添加头(设置api-key)
request.Headers["api-key"] = "OguztSiBglhJiDO=49nPj3R1miE=";
//获取响应,即发送请求
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//读取响应
string str = streamReader.ReadToEnd();
ErrorInfo errorInfo = JsonConvert.DeserializeObject<ErrorInfo>(str);
foreach (var device in errorInfo.Data.Devices)
{
Console.WriteLine($"id=>{device.Id} title=>{device.Title}");
Console.WriteLine("-----------------------------------------------------------");
foreach (var datastream in device.Datastreams)
{
Console.WriteLine($"id=>{datastream.Id} At=>{datastream.At} Value=>{datastream.Value}");
}
}
}
}
}
string t1 = string.Format("{0}", end["at"]);
MessageBox.Show(t1);