¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Net; |
| | | using System.Text; |
| | | |
| | | namespace ConsoleApp1 |
| | | { |
| | | #region 1.æ ¹æ®ææ¡£ç©çæä»¶idè·åææ¡£æµæ°æ® |
| | | public class WarehouseDownloadDoc() |
| | | { |
| | | private string _cloudUrl = "http://47.96.178.105/k3cloud"; |
| | | private string _warehouse = "http://183.129.128.254:8081/CloudPLMWarehouse"; |
| | | |
| | | #region ææ¡£æå¡å¨ä¸ä¸æ |
| | | private string WarehouseCTX |
| | | { |
| | | get |
| | | { |
| | | string json = "{\"ap1\":{ \"AcctID\":\"" + "68044981e73323" + "\",\"Username\":\"广深\",\"Password\":\"gs@123456\",\"Lcid\":2052,\"AuthenticateType\":1,\"PasswordIsEncrypted\":\"false\",\"ClientInfo\":{\"ClientType\":8}}"; |
| | | var resp = GetResponse("http://47.96.178.105/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)); |
| | | } |
| | | } |
| | | #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 请æ±ç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); |
| | | 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); |
| | | |
| | | return resp.GetResponseStream(); // ç´æ¥è¿åååºæµ |
| | | } |
| | | #endregion |
| | | } |
| | | #endregion |
| | | } |