From 4bbdcfb69adda1ceef0091335a4f31b808d360c2 Mon Sep 17 00:00:00 2001 From: wyf Date: Wed, 7 May 2025 02:24:33 +0000 Subject: [PATCH] SVN r538 SVN-Revision: r538 --- 插件库/Lskj.Util/HttpHelper.cs | 144 +++++++++++++++++++++++++++++ 插件库/Lskj.Util/Lskj.Util.csproj | 2 + 插件库/Lskj.Util/ReplaceHelper.cs | 20 +--- 插件库/Lskj.Util/UploadFileUtil.cs | 105 +++++++++++++++++++++ 4 files changed, 252 insertions(+), 19 deletions(-) create mode 100644 插件库/Lskj.Util/HttpHelper.cs create mode 100644 插件库/Lskj.Util/UploadFileUtil.cs diff --git a/插件库/Lskj.Util/HttpHelper.cs b/插件库/Lskj.Util/HttpHelper.cs new file mode 100644 index 0000000..9832141 --- /dev/null +++ b/插件库/Lskj.Util/HttpHelper.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; + +namespace Lskj.Util +{ + public static class HttpHelper + { + public enum Encode + { + Default = 0, + UTF8 = 1 + } + private static string ContentType = string.Empty;// "application/x-www-form-urlencoded"; + private static string Accept = string.Empty;//"text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; + private static string UserAgent = string.Empty;//"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"; + private static Encode EncodeMode = Encode.Default; + public static void Setting(string contentType, string accept, string userAgent, Encode encode = Encode.Default) + { + ContentType = contentType; + Accept = accept; + UserAgent = userAgent; + EncodeMode = encode; + } + /// + /// post数据到指定的网址,获取cookie数据,和返回页 + /// + public static HttpWebResponse Post(string url, string postData, Dictionary pmsDic, Dictionary headerDic, out string result) + { + HttpWebResponse httpWebResponse = null; + try + { + HttpWebRequest httpWebRequest; + httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); + + httpWebRequest.ContentType = ContentType; + httpWebRequest.Accept = Accept; + httpWebRequest.UserAgent = UserAgent; + httpWebRequest.Method = "POST"; + byte[] byteRequest = null; + if (headerDic != null) + { + foreach (var item in headerDic) + { + if (item.Key.Equals("Content-Type")) + { + httpWebRequest.ContentType = item.Value; + } + else + { + httpWebRequest.Headers.Add(item.Key, item.Value); + } + } + } + if (!string.IsNullOrEmpty(postData)) + { + switch (EncodeMode) + { + case Encode.Default: + byteRequest = Encoding.Default.GetBytes(postData); + break; + case Encode.UTF8: + byteRequest = Encoding.UTF8.GetBytes(postData); + break; + } + } + else if (pmsDic != null) + { + StringBuilder builder = new StringBuilder(); + int i = 0; + foreach (var item in pmsDic) + { + if (i > 0) + builder.Append("&"); + builder.AppendFormat("{0}={1}", item.Key, item.Value); + i++; + } + switch (EncodeMode) + { + case Encode.Default: + byteRequest = Encoding.Default.GetBytes(builder.ToString()); + break; + case Encode.UTF8: + byteRequest = Encoding.UTF8.GetBytes(builder.ToString()); + break; + } + } + httpWebRequest.ContentLength = byteRequest.Length; + Stream stream = httpWebRequest.GetRequestStream(); + stream.Write(byteRequest, 0, byteRequest.Length); + stream.Close(); + + httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); + Stream responseStream = httpWebResponse.GetResponseStream(); + StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8); + result = streamReader.ReadToEnd(); + streamReader.Close(); + responseStream.Close(); + + return httpWebResponse; + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + result = ex.Message; + return httpWebResponse; + } + } + /// + /// Get到指定的网址,获取cookie数据,和返回页 + /// + public static HttpWebResponse Get(string url, string postData, Dictionary pmsDic, Dictionary headerDic, out string result) + { + HttpWebResponse httpWebResponse = null; + try + { + StringBuilder builder = new StringBuilder(url); + if (pmsDic != null && pmsDic.Count > 0) + { + builder.Append("?"); + int i = 0; + foreach (var item in pmsDic) + { + if (i > 0) + builder.Append("&"); + builder.AppendFormat("{0}={1}", item.Key, item.Value); + i++; + } + } + HttpWebRequest httpWebRequest; + httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(builder.ToString()); + httpWebRequest.ContentType = ContentType; + //httpWebRequest.Referer = url; + httpWebRequest.Accept = Accept; + httpWebRequest.UserAgent = UserAgent; + httpWebRequest.Method = "GET"; + if (headerDic != null) + { + foreach (var item in headerDic) + { + \ No newline at end of file diff --git a/插件库/Lskj.Util/Lskj.Util.csproj b/插件库/Lskj.Util/Lskj.Util.csproj index d30ed9f..ae2deb3 100644 --- a/插件库/Lskj.Util/Lskj.Util.csproj +++ b/插件库/Lskj.Util/Lskj.Util.csproj @@ -122,6 +122,7 @@ + @@ -143,6 +144,7 @@ + diff --git a/插件库/Lskj.Util/ReplaceHelper.cs b/插件库/Lskj.Util/ReplaceHelper.cs index e89b54a..a9b4a0c 100644 --- a/插件库/Lskj.Util/ReplaceHelper.cs +++ b/插件库/Lskj.Util/ReplaceHelper.cs @@ -779,22 +779,4 @@ namespace Lskj.Util /// 客户标识 /// 私钥 /// System.String. - public static string ReplaceIPersonnel(string defaultValue, string iPersonnelAllowInformation, string iPersonnelCustomerId, string iPersonnelPrivateKey) - { - if (defaultValue.Contains(_iPersonnelAllowInformation) || defaultValue.Contains(_iPersonnelEncryptedMessage)) - { - //替换许可 - defaultValue = defaultValue.Replace(_iPersonnelAllowInformation, iPersonnelAllowInformation); - //替换加密的签名信息 - TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1); - long time = (long)ts.TotalMilliseconds;//当前时间的时间戳 - string EncryptedMessage = string.Format("company_id={0}&mobile_no={1}×tamp={2}", iPersonnelCustomerId, ERPInfo.Instance.UserLinkPhone, time); - string value = Lskj.Util.EncryptByPrivateKey.encryptByPrivateKey(EncryptedMessage, iPersonnelPrivateKey); - defaultValue = defaultValue.Replace(_iPersonnelEncryptedMessage, value); - - } - return defaultValue; - } - - } -} + public static string ReplaceIPersonnel(string defaultValue, string iPersonnelAllowInformation \ No newline at end of file diff --git a/插件库/Lskj.Util/UploadFileUtil.cs b/插件库/Lskj.Util/UploadFileUtil.cs new file mode 100644 index 0000000..8b1c783 --- /dev/null +++ b/插件库/Lskj.Util/UploadFileUtil.cs @@ -0,0 +1,105 @@ +using Lskj.Model; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Web; + +namespace Lskj.Util +{ + public static class UploadFileUtil + { + /// + /// 登录获取token + /// + /// + /// + public static string Login(string oaUrl) + { + string token = ""; + try + { + string loginUrl = $"{oaUrl}/Api/SysUserAjaxApi.ashx"; + HttpHelper.Setting("application/x-www-form-urlencoded", null, null, HttpHelper.Encode.UTF8); + Dictionary loginPmsDic = new Dictionary(); + loginPmsDic.Add("method", "Login"); + loginPmsDic.Add("username", HttpUtility.UrlEncode(ERPInfo.Instance.UserName)); + loginPmsDic.Add("password", HttpUtility.UrlEncode(ERPInfo.Instance.InPassWord)); + HttpWebResponse loginResponse = HttpHelper.Post(loginUrl, "", loginPmsDic, null, out string loginResult); + if (loginResponse != null && !string.IsNullOrEmpty(loginResult)) + { + JObject jObject = JsonConvert.DeserializeObject(loginResult); + if (jObject.ContainsKey("success")) + { + if ((jObject["success"] + "").Equals("True")) + { + if (jObject.ContainsKey("token")) + { + token = jObject["token"] + ""; + } + } + } + } + + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + return token; + } + /// + /// 上传文件 + /// + /// + /// + /// + /// + /// + /// + public static bool UploadFile(string token, string url, string fileStream, out string fileId, out string returnMsg) + { + bool isUpload = false; + fileId = "-1"; + returnMsg = ""; + if (!string.IsNullOrEmpty(token)) + { + HttpHelper.Setting("application/x-www-form-urlencoded", null, null); + string result = ""; + Dictionary headerDic = new Dictionary(); + headerDic.Add("Authorization", $"Bearer {token}"); + HttpWebResponse webResponse = HttpHelper.Post(url, fileStream, null, headerDic, out result); + if (webResponse != null && !string.IsNullOrEmpty(result)) + { + JObject jsonObject = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result); + string isSuccess = jsonObject["success"] + ""; + if (isSuccess.Equals("True", StringComparison.CurrentCultureIgnoreCase)) + { + if (jsonObject.ContainsKey("other")) + { + fileId = jsonObject["other"] + ""; + } + isUpload = true; + } + else + { + if (jsonObject.ContainsKey("msg")) + { + returnMsg = jsonObject["msg"] + ""; + } + isUpload = false; + } + } + else + { + returnMsg = "上传请求失败"; + isUpload = false; + } + } + else + { + returnMsg \ No newline at end of file