using System.Net.Cache; using System.Net; using System.Text; using Newtonsoft.Json; using System.Data.SqlClient; namespace Gs.Toolbox; public class InterfaceUtil { /// /// /// /// json参数 /// /// /// /// 如果为2,则是更新工单状态 /// 如果成功返回日志guid,否则返回串 public static (int, string) HttpPostErp(string param, string edtUserGuid = "", string abtGuid = "", string hNo = "", int urlType = 0) { System.Text.StringBuilder sbTm = new System.Text.StringBuilder(); sbTm.Append(DateTime.Now.ToString() + "开始发送"); string strLogGuid = Guid.NewGuid().ToString(); string url = AppSettingsHelper.getValueByKey("TestErpUrl"); if (urlType == 2) url = AppSettingsHelper.getValueByKey("TestErpUrl2"); HttpWebRequest request = null; StreamWriter requestStream = null; WebResponse response = null; string responseStr = ""; try { request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; request.Accept = "*/*"; request.Timeout = 150000; request.AllowAutoRedirect = false; request.ServicePoint.Expect100Continue = false; HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); request.CachePolicy = noCachePolicy; requestStream = new StreamWriter(request.GetRequestStream()); requestStream.Write(param); requestStream.Close(); response = request.GetResponse(); if (response != null) { var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); reader.Close(); } } catch (Exception ex) { LogHelper.Debug(url, "HttpPostErp param:" + param + ",ex:" + ex.Message); responseStr = ex.Message; // throw ex; } finally { request = null; requestStream = null; response = null; } Result _result = JsonConvert.DeserializeObject(responseStr); int _rtn = 0; if ("200".Equals(_result.state)) _rtn = 1; sbTm.Append("," + DateTime.Now.ToString() + "结束发送"); if (_rtn > 0) sbTm.Append(",发送成功"); else sbTm.Append(",发送失败,mes退出操作"); try { SqlParameter[] parameters = { new("@edtUserGuid", edtUserGuid), new("@abtGuid", abtGuid), new("@abtTable", ""), new("@detail", sbTm.ToString()), new("@hNo", hNo), new("@RtnLogGuid", strLogGuid), new("@SendJson", param), new("@RtnJson", responseStr), }; DbHelperSQL.RunProcedure("[prc_log_create]", parameters); } catch (Exception ex) { LogHelper.Debug(url, "HttpPostErp 写入日志表" + ex.Message); } return (_rtn, (_rtn > 0 ? strLogGuid : responseStr)); } } public class Result { /// /// 200成功,否则失败 /// public string? state { get; set; } public string? msg { get; set; } public string? status { get; set; } public string? message { get; set; } }