605 lines
25 KiB
C#
605 lines
25 KiB
C#
|
|
|
|||
|
|
using Newtonsoft.Json;
|
|||
|
|
using System;
|
|||
|
|
using System.Configuration;
|
|||
|
|
using System.Drawing;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Net;
|
|||
|
|
using System.Text;
|
|||
|
|
|
|||
|
|
namespace BLL.Common
|
|||
|
|
{
|
|||
|
|
public class YunMouHelper
|
|||
|
|
{
|
|||
|
|
public static string YunMouUrl = ConfigurationManager.AppSettings["YunMouUrl"];
|
|||
|
|
public static string ClientSecret = ConfigurationManager.AppSettings["ClientSecret"];
|
|||
|
|
public static string ClientId = ConfigurationManager.AppSettings["ClientId"];
|
|||
|
|
|
|||
|
|
public static string getToken()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
string data = "client_id=" + ClientId + "&client_secret=" + ClientSecret + "&grant_type=client_credentials&scope=app";
|
|||
|
|
string result = Post(YunMouUrl + "oauth/token", data, "application/x-www-form-urlencoded", "");
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
return j2.access_token;
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
return "";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加设备组(一个项目一个)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupName"></param>
|
|||
|
|
/// <param name="groupNo"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addDevicesGroups(string groupName, string groupNo, string access_token)
|
|||
|
|
{
|
|||
|
|
if (groupName.Length > 64)
|
|||
|
|
{
|
|||
|
|
groupName = groupName.Substring(0, 63);
|
|||
|
|
}
|
|||
|
|
string data = "{\"groupName\":\"" + groupName + "\",\"groupNo\":\"" + groupNo + "\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/groups/create", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除设备分组
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupName"></param>
|
|||
|
|
/// <param name="groupNo"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string deleteDevicesGroups(string groupNo, string access_token)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/groups/delete?groupNo=" + groupNo, "", "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加设备
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="deviceSerial"></param>
|
|||
|
|
/// <param name="groupNo"></param>
|
|||
|
|
/// <param name="validateCode"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addDevices(string deviceSerial, string groupNo, string validateCode, string access_token, out string res)
|
|||
|
|
{
|
|||
|
|
string data = "{\"deviceSerial\":\"" + deviceSerial + "\",\"groupNo\":\"" + groupNo + "\",\"validateCode\":\"" + validateCode + "\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/devices/create", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
{
|
|||
|
|
res = j2.message;
|
|||
|
|
return j2.data.groupId;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
res = j2.message;
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 修改设备名称(按设备序列号)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="deviceSerial"></param>
|
|||
|
|
/// <param name="deviceName"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string updateDevices(string deviceSerial, string deviceName, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "{\"deviceSerial\":\"" + deviceSerial + "\",\"deviceName\":\"" + deviceName + "\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/devices/update", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除设备
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="deviceSerial"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string deleteDevices(string deviceSerial, string access_token)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/devices/delete?deviceSerial=" + deviceSerial, "", "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加权限组,建议一个项目一个
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupName"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addPermissionGroups(string groupName, string access_token)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
char[] TrimChar = { '、', ' ', '-', '\'', '\"', '\\', '.', '、', '-', '[', ']', '【', '】', '(', ')', '#', '@', '~', '<', '>' };
|
|||
|
|
//groupname不能大于32位
|
|||
|
|
if (groupName.Length > 32)
|
|||
|
|
{
|
|||
|
|
groupName = groupName.Substring(0, 31).Trim(TrimChar);
|
|||
|
|
}
|
|||
|
|
groupName = groupName.Replace("、", "").Replace("/", "").Replace(".", "").Replace("-", "").Replace("[", "").Replace("]", "").Replace("【", "").Replace("】", "").Replace("(", "")
|
|||
|
|
.Replace(")", "").Replace("#", "").Replace("@", "").Replace("~", "").Replace("<", "").Replace(">", "")
|
|||
|
|
.Replace("(", "")
|
|||
|
|
.Replace(")", "");
|
|||
|
|
string data = "{\"groupName\":\"" + groupName + "\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/create", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.data.groupId;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据权限组下发权限
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupName"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string issuedByGroup(string groupId, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "{\"groupId\":\"" + groupId + "\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/allots/actions/issuedByGroup", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.code;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除权限组(会同时移除权限组下人员和设备下发记录以及已下发到设备的权限)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupId"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string deletePermissionGroups(string groupId, string access_token)
|
|||
|
|
{
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/delete?groupId=" + groupId, "", "application/json;charset=UTF-8", access_token);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
{
|
|||
|
|
return j2.data.groupId;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 填加员工到权限组
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupId"></param>
|
|||
|
|
/// <param name="employeeNos"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addPersonsToGroups(string groupId, string[] employeeNos, string access_token)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//string permissions = "";
|
|||
|
|
//if (employeeNos.Length == 1)
|
|||
|
|
//{
|
|||
|
|
// permissions = "\"permissions\":[{\"employeeNo\": \"" + employeeNos[0] + "\",\"validBeginTime\": \"2020-01-11\"," +
|
|||
|
|
// "\"validEndTime\": \"2050-12-30\"}]";
|
|||
|
|
//}
|
|||
|
|
string data = "{\"groupId\":\"" + groupId + "\",\"employeeNos\":[\"" + string.Join("\", \"", employeeNos) + "\"],\"autoIssue\":\"true\"}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/actions/addPersons", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.data.statisticsId;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 从权限组移除员工
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupId"></param>
|
|||
|
|
/// <param name="employeeNos"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string deletePersonsFromGroups(string groupId, string[] employeeNos, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "{\"groupId\":\"" + groupId + "\",\"employeeNos\":[\"" + string.Join("\", \"", employeeNos) + "\"]}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/actions/removePersons", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.data.statisticsId;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加设备到权限组
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupId"></param>
|
|||
|
|
/// <param name="devices"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addDevicesToGroups(string groupId, string[] devices, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "{\"groupId\":\"" + groupId + "\",\"deviceSerials\":[\"" + string.Join("\", \"", devices) + "\"],\"autoIssue\":true,\"checkCapability\":true}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/actions/addDevices", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.code;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 从权限组移除设备
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="groupId"></param>
|
|||
|
|
/// <param name="devices"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string deleteDevicesFromGroups(string groupId, string[] devices, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "{\"groupId\":\"" + groupId + "\",\"deviceSerials\":[\"" + string.Join("\", \"", devices) + "\"],\"autoIssue\":true,\"checkCapability\":true}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/accessControl/permissionGroups/actions/removeDevices", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加人员
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="employeeNo"></param>
|
|||
|
|
/// <param name="personName"></param>
|
|||
|
|
/// <param name="personPhone"></param>
|
|||
|
|
/// <param name="pic"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
|
|||
|
|
public static string addPerson(string employeeNo, string personName, string personPhone, string pic, string access_token)
|
|||
|
|
{
|
|||
|
|
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
|
|||
|
|
string filename = rootUrl + pic;
|
|||
|
|
FileInfo fi1 = new FileInfo(filename);
|
|||
|
|
if (fi1.Length > 200 * 1024)//base64编码的人脸图片,图片大小需小于200kB,数据需去除base64前缀
|
|||
|
|
{
|
|||
|
|
filename = filename.Replace(".jpg", "_new.jpg").Replace(".jpeg", "_new.jpeg");
|
|||
|
|
CropImage(fi1.FullName, filename, 200);
|
|||
|
|
}
|
|||
|
|
string faceImageBase64 = ImageToByte64String(filename, System.Drawing.Imaging.ImageFormat.Jpeg); // 图片的base64编码
|
|||
|
|
string data = "{\"employeeNo\":\"" + employeeNo + "\",\"personName\":\"" + personName + "\",\"faceImageBase64\":\"" + faceImageBase64 + "\",\"verifyImage\":true}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/persons/create", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
|
|||
|
|
ErrLogInfo.WriteLog(personName + result);
|
|||
|
|
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
return j2.code;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据employeeNo更新人员信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="employeeNo"></param>
|
|||
|
|
/// <param name="personName"></param>
|
|||
|
|
/// <param name="personPhone"></param>
|
|||
|
|
/// <param name="pic"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string updatePerson(string employeeNo, string personName, string personPhone, string pic, string access_token)
|
|||
|
|
{
|
|||
|
|
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
|
|||
|
|
string filename = rootUrl + pic;
|
|||
|
|
FileInfo fi1 = new FileInfo(filename);
|
|||
|
|
if (fi1.Length > 200 * 1024)//base64编码的人脸图片,图片大小需小于200kB,数据需去除base64前缀
|
|||
|
|
{
|
|||
|
|
filename = filename.Replace(".jpg", "_new.jpg").Replace(".jpeg", "_new.jpeg");
|
|||
|
|
CropImage(fi1.FullName, filename, 200);
|
|||
|
|
}
|
|||
|
|
string faceImageBase64 = ImageToByte64String(filename, System.Drawing.Imaging.ImageFormat.Jpeg); // 图片的base64编码
|
|||
|
|
string data = "{\"employeeNo\":\"" + employeeNo + "\",\"personName\":\"" + personName + "\",\"faceImageBase64\":\"" + faceImageBase64 + "\",\"verifyImage\":true}";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/open/basic/persons/update", data, "application/json;charset=UTF-8", access_token);
|
|||
|
|
ErrLogInfo.WriteLog(personName + result);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
return j2.code;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取人员
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="employeeNo"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string getPerson(string employeeNo, string access_token)
|
|||
|
|
{
|
|||
|
|
string result = Get(YunMouUrl + "api/v1/open/basic/persons/get?employeeNo=" + employeeNo, "application/json;charset=UTF-8", access_token);
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 设备布防
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="deviceSerial"></param>
|
|||
|
|
/// <param name="isDefence"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string setDefence(string deviceSerial, string isDefence, string access_token)
|
|||
|
|
{
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/ezviz/devices/actions/setDefence/deviceSerial?deviceSerial=" + deviceSerial + "&isDefence=" + isDefence, "", "application/json;charset=UTF-8", access_token);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.message;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加消息通道
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string addConsumer(string access_token)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/mq/consumer/group1", "", "application/json;charset=UTF-8", access_token);
|
|||
|
|
var j2 = JsonConvert.DeserializeObject<dynamic>(result);
|
|||
|
|
if (j2.code == "200")
|
|||
|
|
return j2.data.consumerId;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception e) { }
|
|||
|
|
return "";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 提交偏移量
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="consumerId"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string offsets(string consumerId, string access_token)
|
|||
|
|
{
|
|||
|
|
string data = "consumerId=" + consumerId;
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/mq/consumer/offsets", data, "application/x-www-form-urlencoded", access_token);
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 消费消息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="consumerId"></param>
|
|||
|
|
/// <param name="access_token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string consumerMessage(string consumerId, string access_token)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
string data = "consumerId=" + consumerId + "&autoCommit=true";
|
|||
|
|
string result = Post(YunMouUrl + "api/v1/mq/consumer/messages", data, "application/x-www-form-urlencoded", access_token);
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
catch (Exception e) { }
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// POST请求
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="url"></param>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
/// <param name="ContentType"></param>
|
|||
|
|
/// <param name="token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string Post(string url, string data, string ContentType, string token)
|
|||
|
|
{
|
|||
|
|
Encoding encoding = Encoding.Default;
|
|||
|
|
|
|||
|
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;//设置这个安全协议必须在创建请求之前!
|
|||
|
|
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象
|
|||
|
|
request.Method = "POST";//请求方式
|
|||
|
|
request.ContentType = ContentType;//链接类型
|
|||
|
|
if (!string.IsNullOrEmpty(token))
|
|||
|
|
{
|
|||
|
|
request.Headers.Add("Authorization", "Bearer " + token);
|
|||
|
|
}
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
|||
|
|
//RequestStream.Write(bytes, 0, bytes.Length);
|
|||
|
|
// byte[] buffer = encoding.GetBytes(data);
|
|||
|
|
request.ContentLength = buffer.Length;
|
|||
|
|
request.GetRequestStream().Write(buffer, 0, buffer.Length);
|
|||
|
|
HttpWebResponse webresponse = request.GetResponse() as HttpWebResponse;
|
|||
|
|
using (Stream s = webresponse.GetResponseStream())
|
|||
|
|
{
|
|||
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|||
|
|
StreamReader reader = new StreamReader(s, Encoding.UTF8);
|
|||
|
|
|
|||
|
|
string res = reader.ReadToEnd();
|
|||
|
|
ErrLogInfo.WriteLog(res);
|
|||
|
|
return res;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// GET请求
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="url"></param>
|
|||
|
|
/// <param name="ContentType"></param>
|
|||
|
|
/// <param name="token"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string Get(string url, string ContentType, string token)
|
|||
|
|
{
|
|||
|
|
Encoding encoding = Encoding.Default;
|
|||
|
|
|
|||
|
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;//设置这个安全协议必须在创建请求之前!
|
|||
|
|
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象
|
|||
|
|
request.Method = "GET";//请求方式
|
|||
|
|
request.ContentType = ContentType;//链接类型
|
|||
|
|
if (!string.IsNullOrEmpty(token))
|
|||
|
|
{
|
|||
|
|
request.Headers.Add("Authorization", "Bearer " + token);
|
|||
|
|
}
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
HttpWebResponse webresponse = request.GetResponse() as HttpWebResponse;
|
|||
|
|
using (Stream s = webresponse.GetResponseStream())
|
|||
|
|
{
|
|||
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|||
|
|
StreamReader reader = new StreamReader(s, Encoding.UTF8);
|
|||
|
|
return reader.ReadToEnd();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public static string ImageToByte64String(string filePath, System.Drawing.Imaging.ImageFormat format)
|
|||
|
|
{
|
|||
|
|
Bitmap bitmap = new Bitmap(filePath);
|
|||
|
|
MemoryStream memoryStream = new MemoryStream();
|
|||
|
|
bitmap.Save(memoryStream, format);
|
|||
|
|
byte[] array = new byte[memoryStream.Length];
|
|||
|
|
memoryStream.Position = 0L;
|
|||
|
|
memoryStream.Read(array, 0, (int)memoryStream.Length);
|
|||
|
|
memoryStream.Close();
|
|||
|
|
return Convert.ToBase64String(array);
|
|||
|
|
}
|
|||
|
|
public static void CropImage(string inputFilePath, string outputFilePath, int maxSizeInKB)
|
|||
|
|
{
|
|||
|
|
// 加载图片
|
|||
|
|
using (Image image = Image.FromFile(inputFilePath))
|
|||
|
|
{
|
|||
|
|
// 计算最大字节大小
|
|||
|
|
int maxSizeBytes = maxSizeInKB * 1024;
|
|||
|
|
|
|||
|
|
// 如果图片大小已经小于或等于最大限制,则不裁剪直接保存
|
|||
|
|
if (GetImageSizeInBytes(image) <= maxSizeBytes)
|
|||
|
|
{
|
|||
|
|
image.Save(outputFilePath, image.RawFormat);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 裁剪图片
|
|||
|
|
// 这里只是一个简单的示例,实际应用中可能需要根据需求来裁剪图片
|
|||
|
|
using (Image croppedImage = CropImageToHalfSize(image))
|
|||
|
|
{
|
|||
|
|
// 保存裁剪后的图片
|
|||
|
|
using (MemoryStream memoryStream = new MemoryStream())
|
|||
|
|
{
|
|||
|
|
croppedImage.Save(memoryStream, image.RawFormat);
|
|||
|
|
|
|||
|
|
// 如果裁剪后的图片大小仍然大于限制,则递归裁剪
|
|||
|
|
if (memoryStream.Length > maxSizeBytes)
|
|||
|
|
{
|
|||
|
|
memoryStream.Position = 0;
|
|||
|
|
string tempFile = outputFilePath.Replace(".jpg", "temp.jpg").Replace(".jpeg", "temp.jpg");
|
|||
|
|
using (FileStream fileStream = new FileStream(tempFile, FileMode.Create))
|
|||
|
|
{
|
|||
|
|
memoryStream.CopyTo(fileStream);
|
|||
|
|
}
|
|||
|
|
CropImage(tempFile, outputFilePath, maxSizeInKB);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
// 保存到文件
|
|||
|
|
memoryStream.Position = 0;
|
|||
|
|
using (FileStream fileStream = new FileStream(outputFilePath, FileMode.Create))
|
|||
|
|
{
|
|||
|
|
memoryStream.CopyTo(fileStream);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private static Image CropImageToHalfSize(Image image)
|
|||
|
|
{
|
|||
|
|
// 这里只是一个示例,实际情况可能需要根据需求来裁剪图片
|
|||
|
|
int newWidth = image.Width / 2;
|
|||
|
|
int newHeight = image.Height / 2;
|
|||
|
|
return image.GetThumbnailImage(newWidth, newHeight, () => { return false; }, IntPtr.Zero);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private static long GetImageSizeInBytes(Image image)
|
|||
|
|
{
|
|||
|
|
using (MemoryStream memoryStream = new MemoryStream())
|
|||
|
|
{
|
|||
|
|
image.Save(memoryStream, image.RawFormat);
|
|||
|
|
return memoryStream.Length;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|