接口调用
一.实体类
1.参数类
public class PalletQuery { public string pallet { get; set; } /// <summary> /// 组织id /// </summary> public string orgid { get; set; } }
2.返回结果类
/// <summary> /// 栈板FBA数据 /// </summary> public class PallteFBA:ResponePram { public PguFba data { get; set; } } /// <summary> /// 盘古Fba /// </summary> public class PguFba { /// <summary> /// 回传信息 /// </summary> public string result { get; set; } /// <summary> /// 是否进行FBA比对 /// </summary> public string flag { get; set; } /// <summary> /// 栈板号 /// </summary> public string pallteNo { get; set; } /// <summary> /// 栈板FBA /// </summary> public string pallteFba { get; set; } /// <summary> /// 工单号 /// </summary> public string erpNum { get; set; } /// <summary> /// 彩盒FBA标签集合 /// </summary> public List<string> boxFba { get; set; } }
二.json工具类
1.实体转换json
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; using Newtonsoft.Json; namespace SunwinonCPC.Common.Json { public class EntityToJson { // 从一个对象信息生成Json串 public static string ObjectToJson(object obj) { return JsonConvert.SerializeObject(obj); } } }
2.json转换实体
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Newtonsoft.Json; //using System.Web.Script.Serialization; namespace SunwinonCPC.Common.Json { /// <summary> /// Json字符串转实体 /// </summary> public class JsonToEntity { /// <summary> /// Json字符串转实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="param">json字符串</param> /// <returns></returns> public static T ConvertToEntity<T>(string param) { return JsonConvert.DeserializeObject<T>(param); } } }
三:Web API调用工具
using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; namespace SunwinonCPC.Common { /// <summary> /// Web API调用工具 /// </summary> public class WebApiTool { /// <summary> /// GET /// </summary> /// <param name="url"></param> /// <returns></returns> public static string HttpGet(string url) { string sResult = string.Empty; try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "application/json"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { sResult = reader.ReadToEnd(); } response.Close(); } catch (Exception err) { throw new Exception("当前组织[" + Globals.OrgId + "]访问:" + url + "出错,请稍后再试或联系管理员"); } return sResult; } /// <summary> /// Post /// </summary> /// <param name="url"></param> /// <param name="data"></param> /// <returns></returns> public static string HttpPost(string url, string data) { return HttpPost(url, data, "application/json"); } /// <summary> /// Post /// </summary> /// <param name="url"></param> /// <param name="data"></param> /// <returns></returns> public static string HttpPost(string url, string data, string contentType) { string sResult = string.Empty; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = contentType; byte[] byt = Encoding.UTF8.GetBytes(data); request.ContentLength = byt.Length; Stream writer = request.GetRequestStream(); writer.Write(byt, 0, byt.Length); writer.Close(); HttpWebResponse responseSorce = (HttpWebResponse)request.GetResponse(); Stream stream = responseSorce.GetResponseStream(); StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")); sResult = reader.ReadToEnd(); stream.Close(); responseSorce.Close(); } catch (Exception err) { throw new Exception("当前组织["+Globals.OrgId+"]访问:" + url + "出错,请稍后再试或联系管理员"); } return sResult; } } }
四:接口(服务器)
1.实体类
/// <summary> /// 栈板FBA查询 /// </summary> public class PalletQuery { public string pallet { get; set; } /// <summary> /// 组织id /// </summary> public string orgid { get; set; } }
注意:前端的实体参数类要与服务器中的参数接收类一致,即PalletQuery类和PalletQuery一样;
2.接口
/// <summary> /// 盘古FBA /// </summary> /// <param name="pallet"></param> /// <returns></returns> [HttpPost("OutWarehouseFBACheck")] public async Task<ResponseBody> OutWarehouseFBACheck(PalletQuery pallet) { Task<ResponseBody> responsePram = Task.Run<ResponseBody>(() => { ResponseBody body = new ResponseBody(); DbHelp dbHelp = DbHelp.GetDbHelpInstance(); try { //string webUrl = AppsettingsUtility.connectionstr.pangGuApi + "/ims-pms/api/prod/getPackFbaData"; string webUrl = DockingApi.GetPgLinkApi(pallet.orgid) + "/ims-pms/api/prod/getPackFbaData"; string palltNo = "{\"palLbId\":\"" + pallet.pallet + "\"}"; string str = HttpPost.DoPost(webUrl, palltNo); PallteFBA ReturnObj = (PallteFBA)JosnToolNet.JsonToObject(str, new PallteFBA()); if (ReturnObj == null) { body.code = 202; body.msg = "False:获取到的信息的解析失败了!"; return body; } if (ReturnObj.result.Contains("NG")) { body.code = 202; body.msg = "False:" + ReturnObj.result; return body; } //是否需要FBA检验 if (ReturnObj.flag == "N") { body.code = 202; body.msg = "False:栈板[" + pallet.pallet + "]不需要进行栈板FBA比对"; return body; } body.code = 200; body.msg = "True:查询成功!"; body.data = ReturnObj; } catch (Exception ex) { body.code = 201; body.msg = ex.Message; } return body; }); return await responsePram; }
五:调用接口
//2.验证是否需要扫描栈板FBA(亚马逊) PalletQuery query = new PalletQuery(); query.orgid = Globals.OrgId; query.pallet = txt_pallet.Text.Trim(); PallteFBA pram = JsonConvert.DeserializeObject<PallteFBA>(WebApiTool.HttpPost(Globals.OpApi + "InWareHouse/OutWarehouseFBACheck", JsonConvert.SerializeObject(query)));
Globals.OpApi + "InWareHouse/OutWarehouseFBACheck"-->接口地址

浙公网安备 33010602011771号