From f89188836314ebce4abcb6cfbfcc9d64f6a47939 Mon Sep 17 00:00:00 2001 From: xusc Date: Wed, 28 Aug 2024 11:24:51 +0800 Subject: [PATCH] .. --- .vs/ICSSoft.FromERP/v16/.suo | Bin 347136 -> 355840 bytes ICSSoft.FromERP/App.config | 3 + ICSSoft.FromERP/HttpHelper.cs | 172 +++++++++++++++++++++++-- ICSSoft.FromERP/ICSSoft.FromERP.csproj | 2 +- ICSSoft.FromERP/SyncCas_Jinyang.cs | 61 ++++----- ICSSoft.Test/Program.cs | 2 +- 6 files changed, 195 insertions(+), 45 deletions(-) diff --git a/.vs/ICSSoft.FromERP/v16/.suo b/.vs/ICSSoft.FromERP/v16/.suo index 95e0e7bef39dd470a092227f8d8c7e465fab20b1..d9031a31e27185e35a438aeb5036d62bb2e5572c 100644 GIT binary patch delta 15897 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 delta 10274 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 diff --git a/ICSSoft.FromERP/App.config b/ICSSoft.FromERP/App.config index 4c4ab2f..5ed0c42 100644 --- a/ICSSoft.FromERP/App.config +++ b/ICSSoft.FromERP/App.config @@ -12,6 +12,9 @@ + + + diff --git a/ICSSoft.FromERP/HttpHelper.cs b/ICSSoft.FromERP/HttpHelper.cs index 3ed4bfa..7284e46 100644 --- a/ICSSoft.FromERP/HttpHelper.cs +++ b/ICSSoft.FromERP/HttpHelper.cs @@ -8,12 +8,13 @@ using System.Net; using System.Reflection; using System.Text; using System.Threading.Tasks; +using System.Net.Http.Headers; namespace ICSSoft.FromERP { public class HttpHelper { - + /// /// POST请求 /// @@ -21,7 +22,7 @@ namespace ICSSoft.FromERP /// 请求json /// token /// - public static async Task HttpClientPost(string url, string requestJson, string contentType = "application/json", string token = "") where T : new() + public static async Task HttpClientPost(string url, string requestJson, Dictionary dic=null , string contentType = "application/json", string token = "") where T : new() { string result = string.Empty; @@ -29,20 +30,87 @@ namespace ICSSoft.FromERP using (HttpContent httpContent = new StringContent(requestJson, System.Text.Encoding.UTF8, contentType)) { //使用注入的httpclientfactory获取client - using (var httpClient = new HttpClient()) + using (var httpClient = new HttpClient( )) { + + if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) + { + ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; + ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; + // httpClient.BaseAddress. = HttpVersion.Version10; + // httpClient.DefaultRequestVersion = HttpVersion.Version30, + } + //设置请求头 //设置超时时间 if (!string.IsNullOrEmpty(token)) httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); + if (dic != null) + { + foreach (var item in dic) + { + httpClient.DefaultRequestHeaders.Add(item.Key, item.Value); + } + } + httpClient.Timeout = new TimeSpan(0, 0, 60); HttpResponseMessage res = httpClient.PostAsync(url, httpContent).Result; res.EnsureSuccessStatusCode(); - result = res.Content.ReadAsStringAsync().Result; + result = res.Content.ReadAsStringAsync().Result; + return JsonConvert.DeserializeObject(result); + } + } + + } + + public static async Task HttpClientPost2(string url, string requestJson, Dictionary dic, string contentType = "application/json") where T : new() + { + + string result = string.Empty; + Uri postUrl = new Uri(url); + + //使用注入的httpclientfactory获取client + using (var httpClient = new HttpClient()) + { + httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(contentType)); + + using (StringContent strcontent = new StringContent(requestJson, Encoding.UTF8, contentType)) + { + var message = new HttpRequestMessage(HttpMethod.Post, url); + //设置cookie信息 + foreach (var item in dic) + { + message.Headers.Add(item.Key, item.Value); + } + + //设置contetn + message.Content = strcontent; + //发送请求 + var res = httpClient.SendAsync(message).Result; + res.EnsureSuccessStatusCode(); + result = await res.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(result); } + + ////设置请求头 + ////设置超时时间 + //if (dic != null && dic.Count > 0) + //{ + // foreach (var item in dic) + // { + // httpClient.DefaultRequestHeaders.Add(item.Key, item.Value); + // } + //} + ////if (!string.IsNullOrEmpty(token)) + //// httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); + //httpClient.Timeout = new TimeSpan(0, 0, 60); + //HttpResponseMessage res = httpClient.PostAsync(url, httpContent).Result; + //res.EnsureSuccessStatusCode(); + //result = await res.Content.ReadAsStringAsync(); + //return JsonConvert.DeserializeObject(result); } + } public static async Task HttpClientGet(string url, string contentType = "application/json", string token = "") where T : new() @@ -54,19 +122,20 @@ namespace ICSSoft.FromERP httpClient.Timeout = new TimeSpan(0, 0, 60); HttpResponseMessage res = httpClient.GetAsync(url).Result; res.EnsureSuccessStatusCode(); - var t = res.Content.ReadAsStringAsync().Result; + var t = res.Content.ReadAsStringAsync().Result; return JsonConvert.DeserializeObject(t); }; } - public static async Task PostForm(string Url, R message) where T : new() + public static async Task PostForm(string Url, R message, Dictionary dic=null) where T : new() { var res = new T(); using (HttpClient httpClient = new HttpClient()) { + httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded")); var body = new List>(); foreach (PropertyInfo info in typeof(R).GetProperties()) { @@ -75,21 +144,98 @@ namespace ICSSoft.FromERP } var content = new FormUrlEncodedContent(body); httpClient.DefaultRequestHeaders.Add("Method", "Post"); - HttpResponseMessage response = await httpClient.PostAsync(Url, content); + if (dic != null) + { + foreach (var item in dic) + { + httpClient.DefaultRequestHeaders.Add(item.Key, item.Value); + } + } + HttpResponseMessage response = httpClient.PostAsync(Url, content).Result; if ((int)response.StatusCode == 200) { response.EnsureSuccessStatusCode(); - string result = response.Content.ReadAsStringAsync().Result; - res = JsonConvert.DeserializeObject(result); + } - else + string result = response.Content.ReadAsStringAsync().Result; + res = JsonConvert.DeserializeObject(result); + + } + return res; + } + + public static async Task HttpPostNoFile(string url, string data) + { + // Encoding encoding = Encoding.UTF8; + // string jsonParam = data; + HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; + request.Method = "post"; + request.ContentType = "application/json"; + + byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString()); + request.ContentLength = byteData.Length; + + using (Stream postStream = request.GetRequestStream()) + { + postStream.Write(byteData, 0, byteData.Length); + } + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { - string result = response.Content.ReadAsStringAsync().Result; - res = JsonConvert.DeserializeObject(result); + var result= reader.ReadToEnd().ToString(); + + return JsonConvert.DeserializeObject(result); } } - return res; + } + + public static string PostData(byte[] data, string url, string contentType = "application/json", int timeout = 20) + { + //创建httpWebRequest对象 + HttpWebRequest httpRequest = null; + if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) + { + ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; + ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; + httpRequest = WebRequest.Create(url) as HttpWebRequest; + httpRequest.ProtocolVersion = HttpVersion.Version10; + } + else + { + httpRequest = WebRequest.Create(url) as HttpWebRequest; + } + if (httpRequest == null) + { + throw new ApplicationException(string.Format("Invalid url string: {0}", url)); + } + //填充httpWebRequest的基本信息 + httpRequest.ContentType = contentType; + httpRequest.Method = "POST"; + httpRequest.Timeout = timeout * 1000; + //填充并发送要post的内容 + httpRequest.ContentLength = data.Length; + httpRequest.Headers.Add("deipaaskeyauth", "a5P1RTL4380zd9jpb57qXx63rdynUHN2"); + using (Stream requestStream = httpRequest.GetRequestStream()) + { + requestStream.Write(data, 0, data.Length); + requestStream.Close(); + } + //发送post请求到服务器并读取服务器返回信息 + var response = httpRequest.GetResponse(); + using (Stream responseStream = response.GetResponseStream()) + { + //读取服务器返回信息 + string stringResponse = string.Empty; + using (StreamReader responseReader = new StreamReader(responseStream, Encoding.UTF8)) + { + stringResponse = responseReader.ReadToEnd(); + } + responseStream.Close(); + return stringResponse; + } } } } diff --git a/ICSSoft.FromERP/ICSSoft.FromERP.csproj b/ICSSoft.FromERP/ICSSoft.FromERP.csproj index 0484405..7d21083 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP.csproj +++ b/ICSSoft.FromERP/ICSSoft.FromERP.csproj @@ -26,7 +26,7 @@ true full false - ..\Root\ + bin\Debug\ DEBUG;TRACE prompt 4 diff --git a/ICSSoft.FromERP/SyncCas_Jinyang.cs b/ICSSoft.FromERP/SyncCas_Jinyang.cs index 81648f6..298dbcd 100644 --- a/ICSSoft.FromERP/SyncCas_Jinyang.cs +++ b/ICSSoft.FromERP/SyncCas_Jinyang.cs @@ -44,50 +44,51 @@ namespace ICSSoft.FromERP DataTable dt = ICSHelper.GetERPDB(conStr); foreach (DataRow dr in dt.Rows) { - var dtNowBegin = new DateTime(2000, 1, 1, 0, 0, 0);//默认开始时间 - var dtNow = DateTime.Now; - string erpName = ICSHelper.GetConfigString()["ERPDB"]; - string TenantId = dr["TenantId"].ToString();//mes 组织 - string TenantCode = dr["TenantCode"].ToString(); - string ErpId = dr["ErpID"].ToString(); //erpID - string Class = this.GetType().Name + TenantCode; - erpName = string.Format(erpName, TenantId); + //var dtNowBegin = new DateTime(2000, 1, 1, 0, 0, 0);//默认开始时间 + //var dtNow = DateTime.Now; + //string erpName = ICSHelper.GetConfigString()["ERPDB"]; + //string TenantId = dr["TenantId"].ToString();//mes 组织 + //string TenantCode = dr["TenantCode"].ToString(); + //string ErpId = dr["ErpID"].ToString(); //erpID + //string Class = this.GetType().Name + TenantCode; + //erpName = string.Format(erpName, TenantId); - string sql0 = " SELECT top 1 ModifyDate FROM ICSERPTime where ClassName='" + Class + "'"; - var lastDate = ICSHelper.ExecuteScalar(conStr, sql0).ToDateOrNull(); - if (!lastDate.HasValue) - { - lastDate = dtNowBegin; - } + //string sql0 = " SELECT top 1 ModifyDate FROM ICSERPTime where ClassName='" + Class + "'"; + //var lastDate = ICSHelper.ExecuteScalar(conStr, sql0).ToDateOrNull(); + //if (!lastDate.HasValue) + //{ + // lastDate = dtNowBegin; + //} - string sql = @" select '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' as MTIME into #TempVendor "; - sql = ICSHelper.Time(Namespace, Class, TenantId, sql, "#TempVendor"); - sql += "DROP TABLE #TempVendor"; - ICSHelper.ExecuteDate(conStr, sql); + //string sql = @" select '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' as MTIME into #TempVendor "; + //sql = ICSHelper.Time(Namespace, Class, TenantId, sql, "#TempVendor"); + //sql += "DROP TABLE #TempVendor"; + //ICSHelper.ExecuteDate(conStr, sql); + List list = new List(); var input = new CapInputDto(); - input.WorkshopID = ""; - input.EquipmentID = ""; - input.ProductNo = ""; - input.LotNo = ""; - input.CollectionTime = ""; + input.WorkshopID = "1"; + input.EquipmentID = "1"; + input.ProductNo = "1"; + input.LotNo = "1"; + input.CollectionTime = "1"; input.ParamValue_Resistance = 12; input.ParamValue_Height = 12; input.Msg = ""; - var inputObj = JsonConvert.SerializeObject(input); - string url = ICSHelper.GetConfigString()["WeiMasErpUrl"] + @"/BasicAssistingService/FromWeMec/APIVenderToMES"; + list.Add(input); + + var inputObj = JsonConvert.SerializeObject(list); + //string url = ICSHelper.GetConfigString()["JinyangCapUrl"]+ @"?deipaaskeyauth=a5P1RTL4380zd9jpb57qXx63rdynUHN2"; + string url = ICSHelper.GetConfigString()["JinyangCapUrl"]; - var result = HttpHelper.HttpClientPost(url, inputObj).Result; + var result = HttpHelper.HttpClientPost(url, inputObj, new Dictionary() { { "deipaaskeyauth", "a5P1RTL4380zd9jpb57qXx63rdynUHN2" } }).Result; + // var result = HttpHelper.HttpClientPost(url, inputObj).Result; if (result.Result == "OK") { - - - // insertSql += "DROP TABLE #tempFromErp4Vendor"; - //ICSHelper.ExecuteDate(conStr, insertSql); } else { diff --git a/ICSSoft.Test/Program.cs b/ICSSoft.Test/Program.cs index d593f5c..0dba83b 100644 --- a/ICSSoft.Test/Program.cs +++ b/ICSSoft.Test/Program.cs @@ -13,7 +13,7 @@ namespace ICSSoft.Test //ICSVendor test = new ICSVendor(); //test.Execute(); - SyncCustomer_WeiMas test = new SyncCustomer_WeiMas(); + SyncCas_Jinyang test = new SyncCas_Jinyang(); test.Execute(); // var ss= ICSHelper.ApiSign("sj_w_id", "70FF7F01C5899A5ACAAD4ECB7FA5B3C5", 1724650261);