123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- 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
- {
- /// <summary>
- /// 小米MES - 进站接⼝
- /// 接口地址:
- /// 接口方法:UnitConfirmDataSetIn
- /// </summary>
- public class XiaomiMESHttp_UpLoadFile : XiaomiMESHttp_X5
- {
- #region 变量
- /// <summary>
- /// 接口地址
- /// </summary>
- protected new static string UpFileUrl { set; get; } = GlobalContext.UpFileUrl;
- /// <summary>
- /// 接口方法
- /// </summary>
- protected new static string Method { set; get; } = "UploadMqtt";
- #endregion 变量
- /// <summary>
- /// 小米上传文档
- /// </summary>
- /// <param name="requestBody"></param>
- /// <returns></returns>
- 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<XmMES_UpFile_Response_Body>(responseBody);
- return stationInResponse;
- }
- #region 入参
- /// <summary>
- /// 上传图片 - 入参
- /// </summary>
- public class XmMES_UpFile_Request
- {
- /// <summary>
- /// 进站接⼝ - 入参 - header
- /// </summary>
- public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader();
- /// <summary>
- /// 进站接⼝ - 入参 - body
- /// </summary>
- public XmMES_UpFile_Request_Body body { get; set; } = new XmMES_UpFile_Request_Body();
- }
- /// <summary>
- /// 进站接⼝ - 入参 - Body 实体
- /// </summary>
- public class XmMES_UpFile_Request_Body
- {
- /// <summary>
- /// ⽂件所属包 格式为:/A/B,如/home/work/app
- /// </summary>
- public string bucket { get; set; } = string.Empty;
- /// <summary>
- /// ⽂件名
- /// </summary>
- public string name { get; set; } = string.Empty;
- /// <summary>
- /// ⽂件内容
- /// </summary>
- public string file { get; set; } = string.Empty;
- /// <summary>
- /// ⽂件唯⼀标识 可选项,⽤于⾃⾏⽣成⽂件标识符,⽂件服务后台会进⾏判重
- /// </summary>
- public string uuid { get; set; } = string.Empty;
- /// <summary>
- /// 可选项,⽤于校验⽂件上传是否正确
- /// </summary>
- public string md5 { get; set; } = string.Empty;
- /// <summary>
- /// 是否上云
- /// </summary>
- public bool uploadCloud { get; set; } = false;
- /// <summary>
- /// 是否通知mqtt
- /// </summary>
- public bool informMqtt { get; set; } = false;
- /// <summary>
- /// 发送通知时的负载
- /// </summary>
- public string mqttPayload { get; set; } = string.Empty;
- }
- #endregion
- #region 出参
- /// <summary>
- /// 上传图片 - 出参
- /// </summary>
- public class XmMES_UpFile_Response
- {
- /// <summary>
- /// header字段描述
- /// </summary>
- public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
- /// <summary>
- /// body字段描述
- /// </summary>
- public XmMES_UpFile_Response_Body body { get; set; } = new XmMES_UpFile_Response_Body();
- }
- /// <summary>
- /// 出参
- /// </summary>
- public class XmMES_UpFile_Response_Body
- {
- /// <summary>
- /// 关键参数代码
- /// 200:成功
- /// 400:参数错误
- /// 500:服务器内部错误
- /// </summary>
- public string code { get; set; } = string.Empty;
- /// <summary>
- /// 关键参数msg
- /// </summary>
- public string msg { get; set; } = string.Empty;
- /// <summary>
- /// 关键参数值,如果是⽂件,这⾥是下载⽂件的url
- /// </summary>
- public UploadResult data { get; set; } = new UploadResult();
- }
- public class UploadResult
- {
- public string uuid { get; set; } = string.Empty;
- }
- #endregion 出参
- }
- }
|