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 出参
}
}