94 lines
3.5 KiB
C#
94 lines
3.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Net.Http;
|
||
using System.Web.Http;
|
||
using TencentCloud.Common;
|
||
using TencentCloud.Common.Profile;
|
||
using TencentCloud.Iotcloud.V20210408;
|
||
using TencentCloud.Iotcloud.V20210408.Models;
|
||
|
||
namespace MQTTServerSideAPI.Controllers
|
||
{
|
||
public class DevicesController : ApiController
|
||
{
|
||
// GET api/<controller>
|
||
public IEnumerable<string> Get()
|
||
{
|
||
return new string[] { "value1", "value2" };
|
||
}
|
||
|
||
// GET api/<controller>/5
|
||
public string Get(string productid)
|
||
{
|
||
string strProductId = productid;
|
||
|
||
string retString = "";
|
||
|
||
|
||
try
|
||
{
|
||
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
||
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
||
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
||
Credential cred = new Credential
|
||
{
|
||
SecretId = "AKIDKhz84sbEqFPRK1Uo0zUnwwjNp4884vc4",
|
||
SecretKey = "JQ8qZGxgQAtbCfvxb7VqzxujOtFVb1KT"
|
||
};
|
||
// 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||
ClientProfile clientProfile = new ClientProfile();
|
||
// 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||
HttpProfile httpProfile = new HttpProfile();
|
||
httpProfile.Endpoint = ("iotcloud.tencentcloudapi.com");
|
||
clientProfile.HttpProfile = httpProfile;
|
||
|
||
// 实例化要请求产品的client对象,clientProfile是可选的
|
||
IotcloudClient client = new IotcloudClient(cred, "ap-guangzhou", clientProfile);
|
||
|
||
// 实例化一个请求对象,每个接口都会对应一个request对象
|
||
DescribeDevicesRequest req = new DescribeDevicesRequest();
|
||
req.ProductId = "HICL5RNXAU"; //strProductId
|
||
req.Offset = 0;
|
||
req.Limit = 250;
|
||
|
||
Logger.LogDownSide(String.Format("Send request: req.ProductId:{0}, req.Offset:{1}, req.Limit:{2}",
|
||
req.ProductId,
|
||
req.Offset,
|
||
req.Limit
|
||
));
|
||
|
||
// 返回的resp是一个DescribeDevicesResponse的实例,与请求对象对应
|
||
DescribeDevicesResponse resp = client.DescribeDevicesSync(req);
|
||
// 输出json格式的字符串回包
|
||
retString = AbstractModel.ToJsonString(resp);
|
||
|
||
Logger.LogDownSide("Success return !! " + retString);
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
if (e.InnerException != null)
|
||
retString = "Error " + e.InnerException.ToString();
|
||
Logger.LogDownSide("Failed exception !! " + e.ToString());
|
||
}
|
||
|
||
return retString;
|
||
}
|
||
|
||
// POST api/<controller>
|
||
public void Post([FromBody] string value)
|
||
{
|
||
}
|
||
|
||
// PUT api/<controller>/5
|
||
public void Put(int id, [FromBody] string value)
|
||
{
|
||
}
|
||
|
||
// DELETE api/<controller>/5
|
||
public void Delete(int id)
|
||
{
|
||
}
|
||
}
|
||
} |