using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using static MainForm.ClassFile.XiaomiAPI.XiaomiMqttClient_Extend; using static MainForm.ClassFile.XiaomiAPI_MES.XiaomiMESHttp_StationInbound; namespace MainForm.ClassFile.XiaomiAPI_MES { /// /// 小米MES - 进站接⼝ /// 接口地址: /// 接口方法:UnitConfirmDataSetIn /// public class XiaomiMESHttp_UpLoadFile : XiaomiMESHttp_X5 { #region 变量 /// /// 接口地址 /// protected new static string UpFileUrl { set; get; } = GlobalContext.UpFileUrl; /// /// 接口方法 /// protected new static string Method { set; get; } = "UploadMqtt"; #endregion 变量 /// /// 小米上传文档 /// /// /// public static XmMES_UpFile_Response UpFilePost(XmMES_UpFile_Request_Body body) { XmMES_UpFile_Response stationInResponse = new XmMES_UpFile_Response(); string bodyJson = JsonConvert.SerializeObject(body); XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader(); header.appid = Appid; // 系统分配的应⽤ID header.method = Method; // API接⼝名称 header.sign = GetSign_Up(Appid, bodyJson, Appkey); // md5签名 header.url = UpFileUrl; // 接⼝地址 //XmMES_StationInRequest request = new XmMES_StationInRequest(); //request.header = header; //request.body = body; //string data = JsonConvert.SerializeObject(request); //转base64 dynamic requestData = new { header = header, body = bodyJson }; var serializedBody = JsonConvert.SerializeObject(requestData); var base64EncodedBody = Convert.ToBase64String(Encoding.UTF8.GetBytes(serializedBody)); XiaomiMES_X5Response response = Post(UpFileUrl, base64EncodedBody); // ZS保存日志 stationInResponse.header = response.header; string responseBody = response.body; stationInResponse.body = JsonConvert.DeserializeObject(responseBody); return stationInResponse; } #region 入参 /// /// 上传图片 - 入参 /// public class XmMES_UpFile_Request { /// /// 进站接⼝ - 入参 - header /// public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader(); /// /// 进站接⼝ - 入参 - body /// public XmMES_UpFile_Request_Body body { get; set; } = new XmMES_UpFile_Request_Body(); } /// /// 进站接⼝ - 入参 - Body 实体 /// public class XmMES_UpFile_Request_Body { /// /// ⽂件所属包 格式为:/A/B,如/home/work/app /// public string bucket { get; set; } = string.Empty; /// /// ⽂件名 /// public string name { get; set; } = string.Empty; /// /// ⽂件内容 /// public string file { get; set; } = string.Empty; /// /// ⽂件唯⼀标识 可选项,⽤于⾃⾏⽣成⽂件标识符,⽂件服务后台会进⾏判重 /// public string uuid { get; set; } = string.Empty; /// /// 可选项,⽤于校验⽂件上传是否正确 /// public string md5 { get; set; } = string.Empty; /// /// 是否上云 /// public bool uploadCloud { get; set; } = false; /// /// 是否通知mqtt /// public bool informMqtt { get; set; } = false; /// /// 发送通知时的负载 /// public string mqttPayload { get; set; } = string.Empty; } #endregion #region 出参 /// /// 上传图片 - 出参 /// public class XmMES_UpFile_Response { /// /// header字段描述 /// public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader(); /// /// body字段描述 /// public XmMES_UpFile_Response_Body body { get; set; } = new XmMES_UpFile_Response_Body(); } /// /// 出参 /// public class XmMES_UpFile_Response_Body { /// /// 关键参数代码 /// 200:成功 /// 400:参数错误 /// 500:服务器内部错误 /// public string code { get; set; } = string.Empty; /// /// 关键参数msg /// public string msg { get; set; } = string.Empty; /// /// 关键参数值,如果是⽂件,这⾥是下载⽂件的url /// public UploadResult data { get; set; } = new UploadResult(); } public class UploadResult { public string uuid { get; set; } = string.Empty; } #endregion 出参 } }