From 5dc3cc86f5835369cd830f2a83318b9a8d69cf69 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期二, 15 七月 2025 16:20:19 +0800 Subject: [PATCH] 11 --- MES.Service/service/PLM/WarehouseDownloadDoc.cs | 312 ++++++++++++++++++++++++++++----------------------- 1 files changed, 169 insertions(+), 143 deletions(-) diff --git a/MES.Service/service/PLM/WarehouseDownloadDoc.cs b/MES.Service/service/PLM/WarehouseDownloadDoc.cs index e365db4..67322bf 100644 --- a/MES.Service/service/PLM/WarehouseDownloadDoc.cs +++ b/MES.Service/service/PLM/WarehouseDownloadDoc.cs @@ -1,152 +1,178 @@ -锘縰sing Newtonsoft.Json.Linq; -using System.Net; +锘縰sing System.Net; using System.Text; +using Newtonsoft.Json.Linq; -namespace ConsoleApp1 +namespace MES.Service.service.PLM; + +#region 1.鏍规嵁鏂囨。鐗╃悊鏂囦欢id鑾峰彇鏂囨。娴佹暟鎹� + +public class WarehouseDownloadDoc { - #region 1.鏍规嵁鏂囨。鐗╃悊鏂囦欢id鑾峰彇鏂囨。娴佹暟鎹� - public class WarehouseDownloadDoc() + private readonly string _cloudUrl = "http://122.227.249.70:5050/k3cloud"; + + private readonly string + _warehouse = "http://192.168.1.90/CloudPLMWarehouse"; + + #region 鏂囨。鏈嶅姟鍣ㄤ笂涓嬫枃 + + private string WarehouseCTX { - private string _cloudUrl = "http://122.227.249.70:5050/k3cloud"; - private string _warehouse = "http://192.168.1.90/CloudPLMWarehouse"; - - #region 鏂囨。鏈嶅姟鍣ㄤ笂涓嬫枃 - private string WarehouseCTX + get { - get - { - string json = "{\"ap1\":{ \"AcctID\":\"" + "6654201b47f099" + "\",\"Username\":\"Administrator\",\"Password\":\"Lts88666*\",\"Lcid\":2052,\"AuthenticateType\":1,\"PasswordIsEncrypted\":\"false\",\"ClientInfo\":{\"ClientType\":8}}"; - var resp = GetResponse("http://122.227.249.70:5050/k3cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.ValidateLoginInfo.common.kdsvc", json, new Dictionary<string, string>()); - string ret = (new StreamReader(resp.GetResponseStream(), Encoding.UTF8)).ReadToEnd(); - var result = JObject.Parse(ret)["Context"]; - string token = result["UserToken"].ToString(); - var warehouseCtx = string.Format("LoginUrl={0}&KDServiceSessionId={1}", _cloudUrl, JObject.Parse(ret)["KDSVCSessionId"].ToString());//瀹夊叏鏂版柟寮� - return Convert.ToBase64String(Encoding.UTF8.GetBytes(warehouseCtx)); - /*string json = "{\"ap1\":{ \"AcctID\":\"" + "6654201b47f099" + "\",\"Username\":\"Administrator\",\"Password\":\"Lts88666*\",\"Lcid\":2052,\"AuthenticateType\":1,\"PasswordIsEncrypted\":\"false\",\"ClientInfo\":{\"ClientType\":8}}"; - var resp = GetResponse("http://122.227.249.70:5050/k3cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.ValidateLoginInfo.common.kdsvc", json, new Dictionary<string, string>()); - string ret = (new StreamReader(resp.GetResponseStream(), Encoding.UTF8)).ReadToEnd(); - var result = JObject.Parse(ret)["Context"]; - string token = result["UserToken"].ToString(); - var warehouseCtx = string.Format("LoginUrl={0}/&UserToken={1}", _cloudUrl, token); - return Convert.ToBase64String(Encoding.UTF8.GetBytes(warehouseCtx));*/ - } + var json = "{\"ap1\":{ \"AcctID\":\"" + "6654201b47f099" + + "\",\"Username\":\"Administrator\",\"Password\":\"Lts88666*\",\"Lcid\":2052,\"AuthenticateType\":1,\"PasswordIsEncrypted\":\"false\",\"ClientInfo\":{\"ClientType\":8}}"; + var resp = GetResponse( + "http://122.227.249.70:5050/k3cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.ValidateLoginInfo.common.kdsvc", + json, new Dictionary<string, string>()); + var ret = new StreamReader(resp.GetResponseStream(), Encoding.UTF8) + .ReadToEnd(); + var result = JObject.Parse(ret)["Context"]; + var token = result["UserToken"].ToString(); + var warehouseCtx = + string.Format("LoginUrl={0}&KDServiceSessionId={1}", _cloudUrl, + JObject.Parse(ret)["KDSVCSessionId"]); //瀹夊叏鏂版柟寮� + return Convert.ToBase64String(Encoding.UTF8.GetBytes(warehouseCtx)); + /*string json = "{\"ap1\":{ \"AcctID\":\"" + "6654201b47f099" + "\",\"Username\":\"Administrator\",\"Password\":\"Lts88666*\",\"Lcid\":2052,\"AuthenticateType\":1,\"PasswordIsEncrypted\":\"false\",\"ClientInfo\":{\"ClientType\":8}}"; + var resp = GetResponse("http://122.227.249.70:5050/k3cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.ValidateLoginInfo.common.kdsvc", json, new Dictionary<string, string>()); + string ret = (new StreamReader(resp.GetResponseStream(), Encoding.UTF8)).ReadToEnd(); + var result = JObject.Parse(ret)["Context"]; + string token = result["UserToken"].ToString(); + var warehouseCtx = string.Format("LoginUrl={0}/&UserToken={1}", _cloudUrl, token); + return Convert.ToBase64String(Encoding.UTF8.GetBytes(warehouseCtx));*/ } - #endregion - - #region 鐗╃悊鏂囦欢id - private string GetFileId(string fileId) - { - return Convert.ToBase64String(Encoding.UTF8.GetBytes(fileId)); - } - #endregion - - #region 鐢靛瓙浠撹闂嚟璇� - private string Token - { - get - { - var token = Guid.NewGuid().ToString(); - return token; - } - } - #endregion - - #region 鍙戦�佽姹� - public Stream SendRequest(string op, string fileId) - { - var header = new Dictionary<string, string>() - { - {"FileID" ,GetFileId(fileId) }, - { "CTX",WarehouseCTX}, - { "token", Token }, - { "PLM_ACCESS_TYPE","pure" } - }; - return PostDataViaHttpWebRequest(RequestUrl(op), string.Empty, header, !op.Equals("Download")); - } - #endregion - - #region 璇锋眰鐨刄RL - private string RequestUrl(string op) - { - return _warehouse + "/" + op; - } - #endregion - - #region 鑾峰彇鍝嶅簲 - private HttpWebResponse GetResponse(string url, string bodyJson, Dictionary<string, string> header) - { - byte[] data = Encoding.UTF8.GetBytes(bodyJson); - - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); - request.Method = WebRequestMethods.Http.Post; - request.ContentType = "application/json"; - request.ContentLength = data.Length; - if (header != null) - { - foreach (var p in header) - { - request.Headers.Add(p.Key, p.Value); - } - } - - using (Stream reqStream = request.GetRequestStream()) - { - reqStream.Write(data, 0, data.Length); - reqStream.Close(); - } - - HttpWebResponse resp = null; - try - { - resp = (HttpWebResponse)request.GetResponse(); - } - catch (WebException ex) - { - var res = ex.Response; - if (res != null) - { - string statusBase64 = ((HttpWebResponse)ex.Response).StatusDescription;//base64缂栫爜鍚庣殑鎶ラ敊淇℃伅 - } - } - return resp; - } - #endregion - - #region 淇濆瓨鏂囦欢鍒版湰鍦� - /* private void PostDataViaHttpWebRequest(string url, string bodyJson, Dictionary<string, string> header, bool isGetContent) - { - - var resp = GetResponse(url, bodyJson, header); - var resultJson = string.Empty; - Stream stream = File.Open("D://DownloadDocDemo.pdf", FileMode.OpenOrCreate); - int packageSize = 1024 * 1024; - byte[] buffer = new byte[packageSize]; - using (stream) - { - using (Stream outputStream = resp.GetResponseStream()) - { - int readLength = 0; - while ((readLength = outputStream.Read(buffer, 0, packageSize)) > 0) - { - stream.Write(buffer, 0, readLength); - stream.Flush(); - } - outputStream.Close(); - } - stream.Close(); - } - }*/ - #endregion - - #region 杩斿洖鏂囦欢娴佺粰鍓嶇 - private Stream PostDataViaHttpWebRequest(string url, string bodyJson, Dictionary<string, string> header, bool isGetContent) - { - - var resp = GetResponse(url, bodyJson, header); - Console.WriteLine(resp.GetResponseStream()); - return resp.GetResponseStream(); // 鐩存帴杩斿洖鍝嶅簲娴� - } - #endregion } + + #endregion + + #region 鐢靛瓙浠撹闂嚟璇� + + private string Token + { + get + { + var token = Guid.NewGuid().ToString(); + return token; + } + } + + #endregion + + #region 鐗╃悊鏂囦欢id + + private string GetFileId(string fileId) + { + return Convert.ToBase64String(Encoding.UTF8.GetBytes(fileId)); + } + + #endregion + + #region 鍙戦�佽姹� + + public Stream SendRequest(string op, string fileId) + { + var header = new Dictionary<string, string> + { + { "FileID", GetFileId(fileId) }, + { "CTX", WarehouseCTX }, + { "token", Token }, + { "PLM_ACCESS_TYPE", "pure" } + }; + return PostDataViaHttpWebRequest(RequestUrl(op), string.Empty, header, + !op.Equals("Download")); + } + + #endregion + + #region 璇锋眰鐨刄RL + + private string RequestUrl(string op) + { + return _warehouse + "/" + op; + } + + #endregion + + #region 鑾峰彇鍝嶅簲 + + private HttpWebResponse GetResponse(string url, string bodyJson, + Dictionary<string, string> header) + { + var data = Encoding.UTF8.GetBytes(bodyJson); + + var request = (HttpWebRequest)WebRequest.Create(url); + request.Method = WebRequestMethods.Http.Post; + request.ContentType = "application/json"; + request.ContentLength = data.Length; + if (header != null) + foreach (var p in header) + request.Headers.Add(p.Key, p.Value); + + using (var reqStream = request.GetRequestStream()) + { + reqStream.Write(data, 0, data.Length); + reqStream.Close(); + } + + HttpWebResponse resp = null; + try + { + resp = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + var res = ex.Response; + if (res != null) + { + var statusBase64 = + ((HttpWebResponse)ex.Response) + .StatusDescription; //base64缂栫爜鍚庣殑鎶ラ敊淇℃伅 + } + } + + return resp; + } + + #endregion + + #region 杩斿洖鏂囦欢娴佺粰鍓嶇 + + private Stream PostDataViaHttpWebRequest(string url, string bodyJson, + Dictionary<string, string> header, bool isGetContent) + { + var resp = GetResponse(url, bodyJson, header); + Console.WriteLine(resp.GetResponseStream()); + return resp.GetResponseStream(); // 鐩存帴杩斿洖鍝嶅簲娴� + } + + #endregion + + #region 淇濆瓨鏂囦欢鍒版湰鍦� + + /* private void PostDataViaHttpWebRequest(string url, string bodyJson, Dictionary<string, string> header, bool isGetContent) + { + + var resp = GetResponse(url, bodyJson, header); + var resultJson = string.Empty; + Stream stream = File.Open("D://DownloadDocDemo.pdf", FileMode.OpenOrCreate); + int packageSize = 1024 * 1024; + byte[] buffer = new byte[packageSize]; + using (stream) + { + using (Stream outputStream = resp.GetResponseStream()) + { + int readLength = 0; + while ((readLength = outputStream.Read(buffer, 0, packageSize)) > 0) + { + stream.Write(buffer, 0, readLength); + stream.Flush(); + } + outputStream.Close(); + } + stream.Close(); + } + }*/ + #endregion } + +#endregion \ No newline at end of file -- Gitblit v1.9.3