using AllBase; using AllBase.Model.DBModel; using AllBase.Model.Result; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace Work._29Tools.BLL { public class HttpResponseWXBLL { //Assistant public static string WeiXinAssistantPostResponse(ShopLoginInfo shop, string _url, string _data, string referer) { string biz_magic = ""; string talent_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { cookies += cook.Name + "=" + cook.Value + ";"; } //var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); //if (bizMagicCookie != null) // biz_magic = bizMagicCookie.Value; var talentMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "talent_magic"); if (talentMagicCookie != null) talent_magic = talentMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.Headers.Add("wecom_magic", @""); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("supplier_magic", @""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("potter-scene", @"weixinShop"); request.Headers.Add("biz_magic", ""); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/plain, */*"; request.Headers.Add("talent_magic", talent_magic); request.ContentType = "application/json"; request.Headers.Add("mcn_magic", @""); request.Headers.Add("Origin", @"https://store.weixin.qq.com"); request.Headers.Add("Sec-Fetch-Site", @"same-origin"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string WeiXinPostResponse(ShopLoginInfo shop, string _url, string _data, string referer) { string biz_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { cookies += cook.Name + "=" + cook.Value + ";"; } var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); if (bizMagicCookie != null) biz_magic = bizMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.Headers.Add("wecom_magic", @""); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("supplier_magic", @""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("potter-scene", @"weixinShop"); request.Headers.Add("biz_magic", biz_magic); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/plain, */*"; request.Headers.Add("talent_magic", @""); request.ContentType = "application/json"; request.Headers.Add("mcn_magic", @""); request.Headers.Add("Origin", @"https://store.weixin.qq.com"); request.Headers.Add("Sec-Fetch-Site", @"same-origin"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string WeiXinTalentOpenKfPostResponse(ShopLoginInfo shop, string _url, string _data, string referer) { string biz_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { cookies += cook.Name + "=" + cook.Value + ";"; } var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); if (bizMagicCookie != null) biz_magic = bizMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.Headers.Add("wecom_magic", @""); request.Headers.Add("user_scene", @"1002"); request.Headers.Add("kf_scene", @"6"); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("supplier_magic", @""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("potter-scene", @"weixinShop"); request.Headers.Add("biz_magic", biz_magic); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/plain, */*"; request.Headers.Add("talent_magic", @""); request.ContentType = "application/json"; request.Headers.Add("logistics_magic", @""); request.Headers.Add("mcn_magic", @""); request.Headers.Add("Origin", @"https://store.weixin.qq.com"); request.Headers.Add("Sec-Fetch-Site", @"same-origin"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string WeiXinImgPostResponse(ShopLoginInfo shop, string _url, string _data, string dis_k, long dis_t, string ext, string referer = "https://store.weixin.qq.com/") { string biz_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { cookies += cook.Name + "=" + cook.Value + ";"; } var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); if (bizMagicCookie != null) biz_magic = bizMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); //request.Headers.Add("X-Arguments", @"dis_k=9974f70b8c9e17952a3bf6aa7b0fcfee84d976d5&dis_t=1767868679&ext=1b37ffc79cfe7&apptype=160&filetype=20304&openid=ouBgG2b2iqWytVlHHK0lhZvMBf2o&groupid=0&taskid=c9059d06-383e-460e-86e6-a0cb134016a9"); request.Headers.Add("X-Arguments", @"dis_k=" + dis_k + @"&dis_t=" + dis_t + @"&ext=" + ext + @"&apptype=160&filetype=20304&openid=" + shop.openid + @"&groupid=0&taskid=" + Guid.NewGuid().ToString()); request.Accept = "application/json, text/plain, */*"; request.ContentType = "application/json"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Headers.Add("Origin", @"https://store.weixin.qq.com"); request.Headers.Add("Sec-Fetch-Site", @"same-site"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = Convert.FromBase64String(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string WeiXinUploadResponse(ShopLoginInfo shop, string _url, string _body, string boundaryStr, string referer) { string biz_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { if (cook.Name.StartsWith("biz")) cookies += cook.Name + "=" + cook.Value + ";"; } var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); if (bizMagicCookie != null) biz_magic = bizMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add("wecom_magic", @""); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("supplier_magic", @""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("potter-scene", @"weixinShop"); request.Headers.Add("biz_magic", biz_magic); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/plain, */*"; request.Headers.Add("talent_magic", @""); request.ContentType = "multipart/form-data; boundary=" + boundaryStr; request.Headers.Add("mcn_magic", @""); request.Headers.Add("Origin", @"https://store.weixin.qq.com"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Headers.Add("Sec-Fetch-Site", @"same-origin"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; //"https://store.weixin.qq.com/shop/goods/entry"; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _body; HttpResponseBLL.WriteMultipartBodyToRequest(request, body); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string WeiXinGetResponse(ShopLoginInfo shop, string _url, string referer = "", bool isGetDocument = false) { string biz_magic = ""; string cookies = ""; try { var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); if (cookieLst == null) cookieLst = new List(); foreach (var cook in cookieLst) { if (cook.Name.StartsWith("biz")) cookies += cook.Name + "=" + cook.Value + ";"; } var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic"); if (bizMagicCookie != null) biz_magic = bizMagicCookie.Value; } catch { } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; if (isGetDocument) { request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("Upgrade-Insecure-Requests", @"1"); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Headers.Add("Sec-Fetch-Site", @"none"); request.Headers.Add("Sec-Fetch-Mode", @"navigate"); request.Headers.Add("Sec-Fetch-User", @"?1"); request.Headers.Add("Sec-Fetch-Dest", @"document"); } else { request.Headers.Add("wecom_magic", @""); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("supplier_magic", @""); request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("potter-scene", @"weixinShop"); request.Headers.Add("biz_magic", biz_magic); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/plain, */*"; request.Headers.Add("talent_magic", @""); request.Headers.Add("mcn_magic", @""); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Headers.Add("Sec-Fetch-Site", @"same-origin"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); } response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string kdniaoPostResponse(string _url, string _data, string referer, Dictionary reqDic, string kdnAuth = null, string kdnAuthKey = "Auth") { HttpWebResponse response = null; string result; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url); request.KeepAlive = true; request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); //request.Headers.Add("kdnAuth", @"62993d99a28947aaadd6b79427929562"); //request.Headers.Add("kdnAuth", kdnAuth); //request.Headers.Add("Auth", kdnAuth); //request.Headers.Add(kdnAuthKey, kdnAuth); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.Accept = "application/json, text/javascript, */*; q=0.01"; request.ContentType = "application/x-www-form-urlencoded"; request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("Origin", @"https://56.kdniao.com"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Headers.Add("Sec-Fetch-Site", @"same-site"); request.Headers.Add("Sec-Fetch-Mode", @"cors"); request.Headers.Add("Sec-Fetch-Dest", @"empty"); foreach (var key in reqDic.Keys) { if (request.Headers.AllKeys.Contains(key)) continue; request.Headers.Add(key, reqDic[key].ParseToString()); } request.Referer = referer; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); return result; } public static string sAuthorization = ""; public static string e57PostResponse(string _url, string _data, string referer) { //if (string.IsNullOrEmpty(Authorization)) Authorization = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA"; bool isRetry = false; Retry: if (string.IsNullOrEmpty(sAuthorization)) { var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization"); var data3 = UserLogin.GetSignaturex(); var html3 = GetHtml.PostUtf8(url3, data3); if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) html3 = GetHtml.PostUtf8(url3, data3); sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization"); } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request; if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.ContentType = "application/json"; request.Headers.Add("sec-ch-ua", @"""Not(A:Brand"";v=""8"", ""Chromium"";v=""144"", ""Google Chrome"";v=""144"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("Upgrade-Insecure-Requests", @"1"); request.Headers.Add("Authorization", "Bearer " + sAuthorization); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; request.Headers.Add("Sec-Fetch-Site", @"none"); request.Headers.Add("Sec-Fetch-Mode", @"navigate"); request.Headers.Add("Sec-Fetch-User", @"?1"); request.Headers.Add("Sec-Fetch-Dest", @"document"); request.Headers.Set(HttpRequestHeader.Cookie, "Admin-Token=" + sAuthorization); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Proxy = null; request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry) { isRetry = true; sAuthorization = ""; goto Retry; } return result; } public static async Task e57PostResponseAsync(string _url, string _data) { //await Task.Delay(2000); //return await Task.FromResult("SUCCESS200"); ////if (string.IsNullOrEmpty(Authorization)) Authorization = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA"; bool isRetry = false; Retry: if (string.IsNullOrEmpty(sAuthorization)) { var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization"); var data3 = UserLogin.GetSignaturex(); var html3 = GetHtml.PostUtf8(url3, data3); if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) html3 = GetHtml.PostUtf8(url3, data3); sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization"); } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request; if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.ContentType = "application/json"; request.Headers.Add("Authorization", "Bearer " + sAuthorization); request.Accept = "application/json"; request.Headers.Set(HttpRequestHeader.Cookie, "Admin-Token=" + sAuthorization); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Proxy = null; request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = _data; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = await request.GetRequestStreamAsync(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); response = (HttpWebResponse)await request.GetResponseAsync(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry) { isRetry = true; sAuthorization = ""; goto Retry; } return result; } public static string e57GetResponse(string _url, string referer) { bool isRetry = false; Retry: if (string.IsNullOrEmpty(sAuthorization)) { var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization"); var data3 = UserLogin.GetSignaturex(); var html3 = GetHtml.PostUtf8(url3, data3); if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) html3 = GetHtml.PostUtf8(url3, data3); sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization"); } HttpWebResponse response = null; string result; try { string url = _url; HttpWebRequest request; if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = true; request.Headers.Add("sec-ch-ua", @"""Not(A:Brand"";v=""8"", ""Chromium"";v=""144"", ""Google Chrome"";v=""144"""); request.Headers.Add("sec-ch-ua-mobile", @"?0"); request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); request.Headers.Add("Upgrade-Insecure-Requests", @"1"); request.Headers.Add("Authorization", "Bearer " + sAuthorization); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; request.Headers.Add("Sec-Fetch-Site", @"none"); request.Headers.Add("Sec-Fetch-Mode", @"navigate"); request.Headers.Add("Sec-Fetch-User", @"?1"); request.Headers.Add("Sec-Fetch-Dest", @"document"); request.Headers.Set(HttpRequestHeader.Cookie, "Admin-Token=" + sAuthorization); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); request.Proxy = null; response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { response = (HttpWebResponse)ex.Response; result = HttpResponseBLL.ReadResponse(response); return result; } else return ex.Message; } catch (Exception e) { if (response != null) response.Close(); return e.Message; } result = HttpResponseBLL.ReadResponse(response); if ((result.Contains("没有Authorization") || result.Contains("授权过期")) && !isRetry) { isRetry = true; sAuthorization = ""; goto Retry; } return result; } } }