| | |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Net; |
| | | using System.Net; |
| | | using System.Text; |
| | | using Newtonsoft.Json.Linq; |
| | | |
| | | namespace ConsoleApp1 |
| | | { |
| | | namespace MES.Service.service.PLM; |
| | | |
| | | #region 1.根据文档物理文件id获取文档流数据 |
| | | public class WarehouseDownloadDoc() |
| | | |
| | | public class WarehouseDownloadDoc |
| | | { |
| | | private string _cloudUrl = "http://122.227.249.70:5050/k3cloud"; |
| | | private string _warehouse = "http://192.168.1.90/CloudPLMWarehouse"; |
| | | 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 |
| | | { |
| | | 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 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"]; |
| | | string token = result["UserToken"].ToString(); |
| | | var warehouseCtx = string.Format("LoginUrl={0}&KDServiceSessionId={1}", _cloudUrl, JObject.Parse(ret)["KDSVCSessionId"].ToString());//安全新方式 |
| | | 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>()); |
| | |
| | | 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 |
| | |
| | | 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>() |
| | | 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")); |
| | | return PostDataViaHttpWebRequest(RequestUrl(op), string.Empty, header, |
| | | !op.Equals("Download")); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 请求的URL |
| | | |
| | | 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); |
| | | 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 (Stream reqStream = request.GetRequestStream()) |
| | | using (var reqStream = request.GetRequestStream()) |
| | | { |
| | | reqStream.Write(data, 0, data.Length); |
| | | reqStream.Close(); |
| | |
| | | var res = ex.Response; |
| | | if (res != null) |
| | | { |
| | | string statusBase64 = ((HttpWebResponse)ex.Response).StatusDescription;//base64编码后的报错信息 |
| | | 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) |
| | | { |
| | | |
| | |
| | | stream.Close(); |
| | | } |
| | | }*/ |
| | | #endregion |
| | | |
| | | #region 返回文件流给前端 |
| | | private Stream PostDataViaHttpWebRequest(string url, string bodyJson, Dictionary<string, string> header, bool isGetContent) |
| | | { |
| | | #endregion |
| | | } |
| | | |
| | | var resp = GetResponse(url, bodyJson, header); |
| | | Console.WriteLine(resp.GetResponseStream()); |
| | | return resp.GetResponseStream(); // 直接返回响应流 |
| | | } |
| | | #endregion |
| | | } |
| | | #endregion |
| | | } |