using AllBase; using CefSharp; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; using System.IO.Compression; using System.Linq; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Work { public class GetPostTaobaoHtml { public static bool DownLoadImage(string url, out byte[] b) { string mainDomain = GetHtml.GetMainDomain(GetHtml.GetDomain(url)); string cookies = ""; if (BaseClass.CookiesAllString.ContainsKey(mainDomain)) cookies = BaseClass.CookiesAllString[mainDomain]; return DownLoadImage(url, out b, cookies); } public static bool DownLoadImage(string url, out byte[] b, string cookies) { if (!string.IsNullOrEmpty(url) && url.Length > 2 && url.Substring(0, 2) == "//") url = "http:" + url; string refere = url.Contains("yangkeduo.com") ? BaseClass.NewUrl+"/" : "https://detail.tmall.com/item.htm?spm=a230r.1.14.37.51edc9e4PYsBpF&id=35689836013&ns=1&abbucket=15"; b = new byte[0]; int time = 0; Again: try { string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); if (string.IsNullOrEmpty(cookies)) { string mainDomain = GetHtml.GetMainDomain(GetHtml.GetDomain(url)); if (BaseClass.CookiesAllString.ContainsKey(mainDomain)) cookies = BaseClass.CookiesAllString[mainDomain]; } //wb.IsDelete = true; wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Proxy = null; wb.Headers.Add("Accept", "image/webp,image/*,*/*;q=0.8"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8"); wb.Headers.Add("User-Agent", userAgent); //wb.Headers.Add("Content-Type", "image/jpeg"); if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); b = wb.DownloadData(url); return true; } catch (Exception e) { if (e.Message.Contains("404")) return false; if (time < 4) { time++; Thread.Sleep(1000 * time + 1000); goto Again; } } return false; } public static string UploadTaobaoPic(string url, string refere, bool isUtf8, string cookies) { return UploadTaobaoPost(url, refere, isUtf8, "", false, cookies); } public static string UploadTaobaoDelete(string url, string refere, bool isUtf8, string data, bool isPost) { try { //string cookies = string.IsNullOrEmpty(BaseClass.ChromeCookies) ? IECookies.GetCookieByWebBrowser(url) : BaseClass.ChromeCookies; //string userAgent = string.IsNullOrEmpty(BaseClass.ChromeUserAgent) ? BaseClass.UserAgent : BaseClass.ChromeUserAgent; string cookies = BaseClass.ChromeCookies; if (url.Contains(".yangkeduo.com")) cookies = BaseClass.CookiesAllString["yangkeduo.com"]; string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.IsDelete = true; wb.Timeout = 30; wb.Proxy = null; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "*/*"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8"); wb.Headers.Add("User-Agent", userAgent); wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); //wb.Proxy = null; string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoH5(string url, string refere, bool isUtf8, string cookies) { cookies = BaseClass.IeFormCookies; return UploadTaobaoPostH5(url, refere, isUtf8, "", false, cookies); } public static string UploadTaobaoPostH5(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { bool againt = false; try { Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); //if (url.Contains("fuwu.pinduoduo.com")) // wb.Headers.Add("Origin", "https://fuwu.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); //userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36"; wb.Headers.Add("User-Agent", userAgent); string xtoken = BaseRegex.GetMatchRegexString(ref cookies, "XSRF-TOKEN=([\\s\\S]+?);"); if (!string.IsNullOrEmpty(xtoken)) { wb.Headers.Add("X-XSRF-TOKEN", xtoken); } wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); //string lo= response.Headers["Location"]; } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string HttpPostData(string url, string fileName, byte[] file, string referer, string cookies) { bool falg = true; Again: if (string.IsNullOrEmpty(cookies)) return ""; var webRequest = (HttpWebRequest)WebRequest.Create(url); // 边界符 var boundary = "----WebKitFormBoundary3nmMkweghIBnMXSD"; // 设置属性 webRequest.KeepAlive = true; webRequest.Method = "POST"; webRequest.ContentType = "multipart/form-data; boundary=" + boundary; webRequest.Referer = referer; webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"; webRequest.Accept = "*/*"; webRequest.Headers.Add("Origin", @"https://fxg.jinritemai.com"); webRequest.Headers.Add("Sec-Fetch-Site", @"same-origin"); webRequest.Headers.Add("Sec-Fetch-Mode", @"cors"); webRequest.Headers.Add("Sec-Fetch-Dest", @"empty"); webRequest.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); webRequest.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); webRequest.Headers.Set(HttpRequestHeader.Cookie, cookies); var memStream = new MemoryStream(); // 边界符 var beginBoundary = Encoding.ASCII.GetBytes("--" + boundary + "\r\n"); // 最后的结束符 var endBoundary = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--"); // 写入文件 string filePartHeader = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" + "Content-Type: image/jpeg\r\n\r\n"; var header = string.Format(filePartHeader, "image[0]", fileName); var headerbytes = Encoding.UTF8.GetBytes(header); memStream.Write(beginBoundary, 0, beginBoundary.Length); memStream.Write(headerbytes, 0, headerbytes.Length); memStream.Write(file, 0, file.Length); // 写入最后的结束边界符 memStream.Write(endBoundary, 0, endBoundary.Length); webRequest.ContentLength = memStream.Length; using (Stream stream = webRequest.GetRequestStream()) { memStream.WriteTo(stream); } string responseText = ""; var httpWebResponse = (HttpWebResponse)webRequest.GetResponse(); if (httpWebResponse != null) { if (string.IsNullOrEmpty(responseText)) responseText = ReadResponse(httpWebResponse); httpWebResponse.Close(); } if (responseText.Contains("\"success\":false") && falg) { falg = false; goto Again; } return responseText; } public static string ReadResponse(HttpWebResponse response) { using (Stream responseStream = response.GetResponseStream()) { Stream streamToRead = responseStream; if (response.ContentEncoding.ToLower().Contains("gzip")) { streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress); } else if (response.ContentEncoding.ToLower().Contains("deflate")) { streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress); } using (StreamReader streamReader = new StreamReader(streamToRead, Encoding.UTF8)) { return streamReader.ReadToEnd(); } } } /// /// GET数据 /// /// 网址 /// 来源 /// 编码是否为UTF-8 /// public static string UploadTaobao(string url, string refere, bool isUtf8) { string cookies = GetCookies(url, ""); return UploadTaobaoPost(url, refere, isUtf8, "", false, cookies); } public static string UploadTaobaoTokenx(string url, string refere, bool isUtf8) { return UploadTaobaoPostToken(url, refere, isUtf8, "", false, ""); } public static string UploadTaobaoPostToken(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { try { cookies = GetCookies(url, cookies); string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("dnt", "1"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken")) { wb.Headers.Add("accesstoken", BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^:]+?);")); } else { if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); if (!string.IsNullOrEmpty(cookies) && url.Contains("api.pinduoduo.com")) { wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); } } wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); if (url.Contains("buyertrade.taobao.com")) wb.Headers.Add("origin", "https://buyertrade.taobao.com"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); //wb.Proxy = null; var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); string rehead = wb.Headers.ToString(); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); if (url.Contains("api=mtop.user.getUserSimple") && head.Contains("_m_h5_tk=")) html = wb.ResponseHeaders["Set-Cookie"]; } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobao(string url, string refere, bool isUtf8, string cookies) { return UploadTaobaoPost(url, refere, isUtf8, "", false, cookies); } public static string GetCookies(string url, string cookies) { if (!string.IsNullOrEmpty(cookies)) return cookies; string mainDomain = GetHtml.GetMainDomain(GetHtml.GetDomain(url)); if (BaseClass.CookiesAllString.ContainsKey(mainDomain)) cookies = BaseClass.CookiesAllString[mainDomain]; return cookies; } public static string UploadTaobaoToken(string url, string refere, bool isUtf8) { string cookies = GetCookies(url, ""); return UploadTaobaoTokenPost(url, refere, isUtf8, "", false, cookies); } public static string UploadTaobaoTokenPost(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { try { string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("dnt", "1"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); if (!string.IsNullOrEmpty(cookies) && url.Contains("api.pinduoduo.com")) { wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); } wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); if (url.Contains("buyertrade.taobao.com")) wb.Headers.Add("origin", "https://buyertrade.taobao.com"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); //wb.Proxy = null; var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); string rehead = wb.Headers.ToString(); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); if (url.Contains("api=mtop.user.getUserSimple") && head.Contains("_m_h5_tk=")) html = wb.ResponseHeaders["Set-Cookie"]; } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data) { string cookies = GetCookies(url, ""); return UploadTaobaoPost(url, refere, isUtf8, data, false, cookies); } public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data, string cookies) { return UploadTaobaoPost(url, refere, isUtf8, data, false, cookies); } public static string UploadFxgPost(string url, string refere, bool isUtf8, string data, string cookies) { return UploadFxgPost(url, refere, isUtf8, data, true, cookies); } public static string UploadFilePost(string url, string refere, bool isUtf8, NameValueCollection stringDict, string cookies) { bool againt = false; try { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); Againt: string userAgent = BaseClass.ChromeUserAgent; var boundary = "----------QkZCM0JGQjYtQzkwRC1CRkU0LUFFQjctMUEyM0M5MkVDMTMz"; // 边界符 var beginBoundary = Encoding.ASCII.GetBytes("--" + boundary + "\r\n"); //var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); // 最后的结束符 var endBoundary = Encoding.ASCII.GetBytes("--" + boundary + "--\r\n"); WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if(url.Contains("https://s.taobao.com/image")) wb.Headers.Add("Origin", "https://www.taobao.com"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); else if (!string.IsNullOrEmpty(pdd)) wb.Headers.Add("accesstoken", pdd); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); wb.Proxy = null; string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b; string html, head; try { var memStream = new MemoryStream(); wb.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary); memStream.Write(beginBoundary, 0, beginBoundary.Length); // 写入字符串的Key var stringKeyHeader = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"" + "\r\n\r\n{1}\r\n"; foreach (byte[] formitembytes in from string key in stringDict.Keys select string.Format(stringKeyHeader, key, stringDict[key]) into formitem select Encoding.UTF8.GetBytes(formitem)) { memStream.Write(formitembytes, 0, formitembytes.Length); } // 写入最后的结束边界符 memStream.Write(endBoundary, 0, endBoundary.Length); wb.Headers.Add("ContentLength", memStream.Length.ToString()); var tempBuffer = memStream.ToArray(); b = wb.UploadData(url, "POST", tempBuffer); html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string GetUrl(string url, string refere, bool isUtf8, string data, string sCookies = "") { try { string domain = GetHtml.GetDomain(url); string mainDomain = GetHtml.GetMainDomain(domain); string cookies = sCookies; if (BaseClass.CookiesAllString.ContainsKey(mainDomain)) cookies = BaseClass.CookiesAllString[mainDomain]; else if (BaseClass.CookiesAllString.ContainsKey(domain)) cookies = BaseClass.CookiesAllString[domain]; string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); //wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); wb.Proxy = null; string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = data == null ? new byte[0] : encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data)) { b = wb.DownloadData(url); } else { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string PostTaobaoNew(string url, string refere, bool isUtf8, string data) { bool againt = false; try { string cookies = GetCookies(url, ""); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data)) { b = wb.DownloadData(url); } else { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string JsonPinduoduoUpload(string url, string refere, bool isUtf8, string data, string cookies) { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); string pddx = ""; if (!string.IsNullOrEmpty(cookies)) pddx = BaseRegex.GetMatchRegexString(ref cookies, "PASS_ID=([^;]+?);"); string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); else if (!string.IsNullOrEmpty(pdd)) wb.Headers.Add("accesstoken", pdd); else if (!string.IsNullOrEmpty(pddx)) wb.Headers.Add("PASSID", pddx); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "https://mms.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); wb.Proxy = null; wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data)) { b = wb.DownloadData(url); } else { wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); return html; } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoDetailPic(string url, string refere, bool isUtf8) { return UploadTaobaoPostDetail(url, refere, isUtf8, "", false, ""); } public static string UploadTaobaoDetailPic(string url, string refere, bool isUtf8, string cookies) { return UploadTaobaoPostDetail(url, refere, isUtf8, "", false, cookies); } public static string UploadTaobaoPostDetail(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { bool againt = false; try { Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); //if (url.Contains("fuwu.pinduoduo.com")) // wb.Headers.Add("Origin", "https://fuwu.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); //string lo= response.Headers["Location"]; } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data, bool isPost, string cookies, int timeOut = 30) { bool againt = false; try { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); string pddx = ""; if (!string.IsNullOrEmpty(cookies)) pddx = BaseRegex.GetMatchRegexString(ref cookies, "[^_]PASS_ID=([^;]+?);"); Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = timeOut; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); else if (!string.IsNullOrEmpty(pdd)) wb.Headers.Add("accesstoken", pdd); else if (!string.IsNullOrEmpty(pddx)) wb.Headers.Add("PASSID", pddx); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); //if (url.Contains("fuwu.pinduoduo.com")) // wb.Headers.Add("Origin", "https://fuwu.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadFxgPost(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { bool againt = false; try { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; Againt: string userAgent = BaseClass.ChromeUserAgent; if (string.IsNullOrEmpty(userAgent)) { userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"; } WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Origin", "https://fxg.jinritemai.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("Sec-Fetch-Site", "same-origin"); wb.Headers.Add("Sec-Fetch-Mode", "cors"); wb.Headers.Add("Sec-Fetch-Dest", "empty"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); //} //else //{ //wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data, string cookies,string codex) { return UploadTaobaoPost(url, refere, isUtf8, data, false, cookies,codex); } public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data, bool isPost, string cookies,string codex) { bool againt = false; try { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); string pddx = ""; if (!string.IsNullOrEmpty(cookies)) pddx = BaseRegex.GetMatchRegexString(ref cookies, "[^_]PASS_ID=([^;]+?);"); Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Anti-Content", codex); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); else if (!string.IsNullOrEmpty(pdd)) wb.Headers.Add("accesstoken", pdd); else if (!string.IsNullOrEmpty(pddx)) wb.Headers.Add("PASSID", pddx); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTaobaoPostWhite(string url, string refere, bool isUtf8, string data, string cookies, string codex ,string VerifyAuthToken) { return UploadTaobaoPostWhite(url, refere, isUtf8, data, false, cookies, codex, VerifyAuthToken); } public static string UploadTaobaoPostWhite(string url, string refere, bool isUtf8, string data, bool isPost, string cookies, string codex,string VerifyAuthToken) { bool againt = false; try { Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Anti-Content", codex); wb.Headers.Add("VerifyAuthToken", VerifyAuthToken); wb.Headers.Add("Origin", "https://aid.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } public static string UploadTransitTaobao(string url, string refere, bool isUtf8) { string cookies = GetCookies(url, ""); return UploadTransitTaobaoPost(url, refere, isUtf8, "", false, cookies); } public static string createtRansit() { // string pkey = @" -----BEGIN PUBLIC KEY---- //MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJ50kaClQ5XTQfzkHAW9Ehi+iXQKUwVWg1R0SC3uYIlVmneu6AfVPEj6ovMmHa2ucq0qCUlMK+ACUPejzMZbcRAMtDAM+o0XYujcGxJpcc6jHhZGO0QSRK37+i47RbCxcdsUZUB5AS0BAIQOTfRW8XUrrGzmZWtiypu/97lKVpeQIDAQAB //-----END PUBLIC KEY-----"; // string data = "sycmsycmsycmsycm"; // var rsa = new RSA(pkey, true); // string transit_id = rsa.Encode(data); string pkey = " -----BEGIN PUBLIC KEY----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJ50kaClQ5XTQfzkHAW9Ehi+iXQKUwVWg1R0SC3uYIlVmneu6AfVPEj6ovMmHa2ucq0qCUlMK+ACUPejzMZbcRAMtDAM+o0XYujcGxJpcc6jHhZGO0QSRK37+i47RbCxcdsUZUB5AS0BAIQOTfRW8XUrrGzmZWtiypu/97lKVpeQIDAQAB\n-----END PUBLIC KEY-----"; string data = "w28Cz694s63kBYk4"; var rsa = new RSA(pkey, true); string transit_id = rsa.Encode(data); return transit_id; } public static string UploadTransitTaobaoPost(string url, string refere, bool isUtf8, string data, bool isPost, string cookies) { bool againt = false; try { cookies = GetCookies(url, cookies); if (string.IsNullOrEmpty(cookies)) cookies = BaseClass.ChromeCookies; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); string pddx = ""; if (!string.IsNullOrEmpty(cookies)) pddx = BaseRegex.GetMatchRegexString(ref cookies, "PASS_ID=([^;]+?);"); Againt: string userAgent = BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); wb.Timeout = 30; wb.AllowAutoRedirect = true; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("X-Requested-With", "XMLHttpRequest"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); if (!string.IsNullOrEmpty(cookies) && cookies.Contains("PDDAccessToken") && BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll["yangkeduo.com"].ContainsKey("PDDAccessToken")) wb.Headers.Add("accesstoken", BaseClass.CookiesAll["yangkeduo.com"]["PDDAccessToken"]); else if (!string.IsNullOrEmpty(pdd)) wb.Headers.Add("accesstoken", pdd); else if (!string.IsNullOrEmpty(pddx)) wb.Headers.Add("PASSID", pddx); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Headers.Add("transit-id", createtRansit()); wb.Proxy = null; if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { if (string.IsNullOrEmpty(data) && !isPost) { b = wb.DownloadData(url); } else { if (isPost || url.Contains("taobao.com") || url.Contains("1688.com")) { wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); } else { wb.Headers.Add("Content-Type", "application/json; charset=" + (isUtf8 ? "UTF-8" : "gbk")); } wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); string c = BaseRegex.GetMatchRegexString(wb.ResponseHeaders["Content-Type"], "charset\\s*=\\s*(\\S+)"); if (!string.IsNullOrEmpty(c)) { c = c.Trim().ToLower().Replace("utf8", "utf-8"); } if (string.IsNullOrEmpty(c)) c = BaseRegex.GetMatchRegexString(html, @"]*?charset=[""']*([\w-]+)[""']*"); if (!string.IsNullOrEmpty(c)) { if (c.IndexOf("'") > -1) c = c.Substring(0, c.IndexOf("'")); if (c.IndexOf("\"") > -1) c = c.Substring(0, c.IndexOf("\"")); if (c.IndexOf(" ") > -1) c = c.Substring(0, c.IndexOf(" ")); if (c.IndexOf(">") > -1) c = c.Substring(0, c.IndexOf(">")); if (!string.IsNullOrEmpty(c)) html = Encoding.GetEncoding(c).GetString(b); } head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; if (!againt) { againt = true; Thread.Sleep(10 * 1000); goto Againt; } } return GetHtml.Decode(html); } catch (Exception e) { LogSave.Add("访问网址错误:" + url + " " + e.Message); return ""; } } /// /// POST数据 /// /// 网址 /// 来源 /// 编码是否为UTF-8 /// 数据 /// 是否强制为post提交 /// public static string UploadTaobaoPost(string url, string refere, bool isUtf8, string data, bool isPost) { string cookies = GetCookies(url, ""); return UploadTaobaoPost(url, refere, isUtf8, data, isPost, cookies); } public static string GetJsonPost(string url, string refere, bool isUtf8, string data) { string cookies = string.IsNullOrEmpty(BaseClass.ChromeCookies) ? IECookies.GetCookieByWebBrowser(url) : BaseClass.ChromeCookies; cookies = GetCookies(url, cookies); return GetJsonPost(url, refere, isUtf8, data, cookies); } public static DateTime GetIpTime = new DateTime(); public static List DailiIps = new List(); public static string GetByProxy(string url, bool isUtf8) { if (GetIpTime < DateTime.Now.AddSeconds(-300) ) { string urlx = "http://vip-custom.66daili.cn/proxypool/proxy/anxmvipvip/HJIHIUJIOP/66daili/"; //urlx = "http://pdd-custom.66daili.cn/proxypool/custom/2401348571901983939/66daili"; //if (Randomx.GetId(100) < 50) // urlx = "http://pdd-custom.66daili.cn/proxypool/custom/2401400501901983956/66daili"; string html = GetHtml.Utf8(urlx); if (!string.IsNullOrEmpty(html) && html.Contains(":")) { string[] l = html.Split('\n'); DailiIps.Clear(); for (int i = 0; i < l.Length; i++) { if(string.IsNullOrEmpty(l[i]) || !l[i].Contains(":")) continue; DailiIps.Add(l[i].Trim()); } } } if (DailiIps.Count < 50) return ""; string proxy = DailiIps[Randomx.GetId(DailiIps.Count)]; return GetJsonPost(url, url, isUtf8, "", "", proxy); } public static string GetJsonPostByProxy(string url, string refere, bool isUtf8, string data, string cookies) { string urlx = "http://vip-custom.66daili.cn/proxypool/proxy/anxmvipvip/HJIHIUJIOP/66daili/"; string html = GetHtml.Utf8(urlx); string proxy = ""; if (!string.IsNullOrEmpty(html) && html.Contains(":")) { string[] l = html.Split('\n'); proxy = l[Randomx.GetId(l.Length)].Trim(); } return GetJsonPost(url, refere, isUtf8, data, cookies, proxy); } /// /// json提交数据 /// /// /// /// /// /// public static string GetJsonPost(string url, string refere, bool isUtf8, string data, string cookies, string proxy) { string userAgent = string.IsNullOrEmpty(BaseClass.ChromeUserAgent) ? BaseClass.UserAgent : BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); if (string.IsNullOrEmpty(cookies)) cookies = GetCookies(url, cookies); wb.Timeout = 10; wb.AllowAutoRedirect = false; //wb.Timeout = 70; //wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); if (!string.IsNullOrEmpty(proxy)) wb.Proxy = new WebProxy(proxy); else wb.Proxy = null; string pdd = ""; if (!string.IsNullOrEmpty(cookies)) pdd = BaseRegex.GetMatchRegexString(ref cookies, "PDDAccessToken=([^;]+?);"); string pddx = ""; if (!string.IsNullOrEmpty(cookies)) pddx = BaseRegex.GetMatchRegexString(ref cookies, "PASS_ID=([^;]+)"); else if (!string.IsNullOrEmpty(pddx)) wb.Headers.Add("PASSID", pddx); if (url.Contains("gy.taobao.com")) wb.Headers.Add("Origin", "https://gy.taobao.com"); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "https://mms.pinduoduo.com"); //wb.Proxy = null; string rehead = wb.Headers.ToString(); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { wb.Headers.Add("Accept", "application/json"); wb.Headers.Add("Content-Type", "application/json; charset=UTF-8"); if (string.IsNullOrEmpty(data)) { b = wb.DownloadData(url); } else { //wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wb.Headers.Add("ContentLength", postData.Length.ToString()); rehead = wb.Headers.ToString(); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); head = wb.ResponseHeaders.ToString(); if (url.Contains("https://mms.pinduoduo.com/auth"))//拼多多登录专用 { string domainUrl = "https://mms.pinduoduo.com"; string setCookies = wb.ResponseHeaders["Set-Cookie"]; string k = "PASS_ID"; string v = BaseRegex.GetMatchRegexString(setCookies, "PASS_ID=([^;]+?);"); var cookieManager = CefSharp.Cef.GetGlobalCookieManager(); var cookie = new CefSharp.Cookie { Name = k, Value = v, Expires = DateTime.Now.AddYears(1), Path = "/", HttpOnly = true }; Task task = cookieManager.SetCookieAsync(domainUrl, cookie); while (!task.IsCompleted) { Thread.Sleep(1); } BaseClass.ChromeCookies += " PASS_ID=" + v + ";"; } } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return html; } /// /// json提交数据 /// /// /// /// /// /// public static string GetJsonPost(string url, string refere, bool isUtf8, string data, string cookies) { string userAgent = string.IsNullOrEmpty(BaseClass.ChromeUserAgent) ? BaseClass.UserAgent : BaseClass.ChromeUserAgent; WebClientx wb = new WebClientx(); if (string.IsNullOrEmpty(cookies)) cookies = GetCookies(url, cookies); wb.Timeout = 30; wb.Proxy = null; wb.AllowAutoRedirect = false; //wb.Timeout = 70; wb.Headers.Add("Accept", "application/json, text/javascript, */*; q=0.01"); wb.Headers.Add("Accept-Encoding", "gzip,deflate"); wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); wb.Headers.Add("User-Agent", userAgent); wb.Headers.Add("Upgrade-Insecure-Requests", "1"); //wb.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); if (!string.IsNullOrEmpty(refere)) wb.Headers.Add("Referer", refere); if (!string.IsNullOrEmpty(cookies)) wb.Headers.Add("Cookie", cookies); //wb.Proxy = null; string rehead = wb.Headers.ToString(); if (url.Contains("mms.pinduoduo.com")) wb.Headers.Add("Origin", "http://mms.pinduoduo.com"); var encode = isUtf8 ? Encoding.UTF8 : Encoding.GetEncoding("gbk"); byte[] b, postData = encode.GetBytes(data); string html, head; try { wb.Headers.Add("Content-Type", "application/json; charset=UTF-8"); if (string.IsNullOrEmpty(data)) { b = wb.DownloadData(url); } else { //wb.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wb.Headers.Add("ContentLength", postData.Length.ToString()); b = wb.UploadData(url, "POST", postData); } html = encode.GetString(b); head = wb.ResponseHeaders.ToString(); } catch (Exception ee) { html = "提交错误:" + ee.Message; head = ""; } return GetHtml.Decode(html); } public static string PostFileTaobao(string url, string refere, bool isUtf8, NameValueCollection stringDict,byte[] file) { string cookies = GetCookies(url, ""); string html = HttpPostData(url, 30000, "imgfile", "1.jpg", file, stringDict, "", cookies); return html; } /// /// 发送post请求 /// /// /// /// /// /// /// private static string HttpPostData(string url, int timeOut, string fileKeyName, string fileName, byte[] file, NameValueCollection stringDict, string referer, string cookies = "") { string responseContent; string cookie = BaseClass.CookiesAllString.ContainsKey("taobao.com") ? BaseClass.CookiesAllString["taobao.com"] : ""; if (!string.IsNullOrEmpty(cookies)) { cookie = cookies; } var memStream = new MemoryStream(); var webRequest = (HttpWebRequest)WebRequest.Create(url); // 边界符 var boundary = "----------QkZCM0JGQjYtQzkwRC1CRkU0LUFFQjctMUEyM0M5MkVDMTMz"; // 边界符 var beginBoundary = Encoding.ASCII.GetBytes("--" + boundary + "\r\n"); //var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); // 最后的结束符 var endBoundary = Encoding.ASCII.GetBytes("--" + boundary + "--\r\n"); // 设置属性 webRequest.Method = "POST"; webRequest.Timeout = timeOut; webRequest.Proxy = null; webRequest.ReadWriteTimeout = timeOut; webRequest.ContentType = "multipart/form-data; boundary=" + boundary; if (string.IsNullOrEmpty(referer)) referer = "https://tadget.taobao.com/redaction/manager.htm"; webRequest.Referer = referer; webRequest.UserAgent = BaseClass.ChromeUserAgent; //webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"; webRequest.Headers.Add("Cookie", cookie); webRequest.Headers.Add("Origin", "https://www.taobao.com"); webRequest.Headers.Add("Upgrade-Insecure-Requests", "1"); webRequest.Headers.Add("Cache-Control", "max-age=0"); //webRequest.Headers.Add("Cookie", "v=0; cookie2=19bb7096a84354a4c14f57b3b139b358; _tb_token_=371a6e3e53673; existShop=MTQ5NTA4NzEwNQ%3D%3D; skt=07be2c7a4d43d4e3; publishItemObj=Ng%3D%3D; t=cdd5be62cd6b4e78434311371fbd7ff9; uc3=sg2=UtABdWdeGfXD%2FQkzzQhDSLQGa8sMw6MWHGmZA5%2Fz1oY%3D&nk2=G4mgLCefCRJZu5RKow%3D%3D&id2=W8nWsIU9pmPl&vt3=F8dARVDUXtcYdighsV4%3D&lg2=VFC%2FuZ9ayeYq2g%3D%3D; tracknick=xiaotui930904; _cc_=UIHiLt3xSw%3D%3D; tg=0; thw=cn; ali_ab=36.7.115.240.1486373819164.2; miid=805014732159802464; mt=np=&ci=1_1&cyk=2_0; hng=CN%7Czh-CN%7CCNY; cna=FBaXEKHXWGsCASQ5jXreM7Bn; l=Alpa9EIFIfaqKZPIW3nvwNBw6g58A95l; isg=AoGB_EtuvM235dDxcXm4k6uxmM2obfWgjhNWjuPW9AjnyqCcK_uCcC2I-ody; lgc=xiaotui930904; uss=BxExuOuBMGTSmmLusncTQzrc54qNGyvc44m3KpvMw%2FDqvz12lH2jkCfx; _m_user_unitinfo_=unit|unsz; _m_h5_tk=0e98a920393ab7ef74949cb428e8cbf8_1495072723582; _m_h5_tk_enc=c01cbddf709302868d28a398ddc7a464; _m_unitapi_v_=1492572565585; uc1=cookie14=UoW%2BvfobS%2FYyFQ%3D%3D&lng=zh_CN&cookie16=UtASsssmPlP%2Ff1IHDsDaPRu%2BPw%3D%3D&existShop=true&cookie21=UIHiLt3xSixwH1aenGUFEQ%3D%3D&tag=8&cookie15=WqG3DMC9VAQiUQ%3D%3D&pas=0; sg=482; cookie1=AVZ7NzilkILAckSZh3aH1rY3cLn%2F1CTS%2FTys%2FR09hPk%3D; unb=802158228; _l_g_=Ug%3D%3D; _nk_=xiaotui930904; cookie17=W8nWsIU9pmPl; JSESSIONID=3667ED995D0FA3DF2C4B9D2848FBECFB; apushcff39d705ee654f2389a8c5fb80067dd=%7B%22ts%22%3A1495087171963%2C%22parentId%22%3A1495087120835%7D"); //webRequest.Headers.Add("X-Requested-With", "ShockwaveFlash/23.9.9.999"); //webRequest.Headers.Add("x-flash-version", "25,0,0,148"); string head = webRequest.Headers.ToString(); // 写入文件 string filePartHeader = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" + "Content-Type: application/octet-stream\r\n\r\n"; if (url.Contains("s.taobao.com/image")) { filePartHeader = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" + "Content-Type: image/jpeg\r\n\r\n"; } var header = string.Format(filePartHeader, fileKeyName, fileName); var headerbytes = Encoding.UTF8.GetBytes(header); memStream.Write(beginBoundary, 0, beginBoundary.Length); memStream.Write(headerbytes, 0, headerbytes.Length); //while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) //{ // memStream.Write(buffer, 0, bytesRead); //} memStream.Write(file, 0, file.Length); // 写入字符串的Key var stringKeyHeader = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"" + "\r\n\r\n{1}\r\n"; foreach (byte[] formitembytes in from string key in stringDict.Keys select string.Format(stringKeyHeader, key, stringDict[key]) into formitem select Encoding.UTF8.GetBytes(formitem)) { memStream.Write(formitembytes, 0, formitembytes.Length); } // 写入最后的结束边界符 memStream.Write(endBoundary, 0, endBoundary.Length); webRequest.ContentLength = memStream.Length; var requestStream = webRequest.GetRequestStream(); memStream.Position = 0; var tempBuffer = new byte[memStream.Length]; memStream.Read(tempBuffer, 0, tempBuffer.Length); memStream.Close(); requestStream.Write(tempBuffer, 0, tempBuffer.Length); requestStream.Close(); var httpWebResponse = (HttpWebResponse)webRequest.GetResponse(); using (var httpStreamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"))) { responseContent = httpStreamReader.ReadToEnd(); } httpWebResponse.Close(); webRequest.Abort(); return responseContent; } public static string UploadBaidu(string url) { string userAgent = string.IsNullOrEmpty(BaseClass.ChromeUserAgent) ? BaseClass.UserAgent : BaseClass.ChromeUserAgent; HttpWebResponse response = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.KeepAlive = true; request.Accept = "*/*"; request.Headers.Add("is_xhr", @"1"); request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.Headers.Add("is_referer", @"https://www.baidu.com/s?wd=%E6%9C%AC%E6%9C%BAip%E5%9C%B0%E5%9D%80%E6%9F%A5%E8%AF%A22"); request.UserAgent = userAgent; request.Headers.Add("is_pbs", @"%E6%9C%AC%E6%9C%BAip%E5%9C%B0%E5%9D%80%E6%9F%A5%E8%AF%A2"); request.Referer = "https://www.baidu.com/s?wd=%E6%9C%AC%E6%9C%BAip%E5%9C%B0%E5%9D%80%E6%9F%A5%E8%AF%A2"; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); response = (HttpWebResponse)request.GetResponse(); } catch (WebException e) { if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response; else return ""; } catch (Exception) { if (response != null) response.Close(); return ""; } using (Stream responseStream = response.GetResponseStream()) { Stream streamToRead = responseStream; if (response.ContentEncoding.ToLower().Contains("gzip")) { streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress); } else if (response.ContentEncoding.ToLower().Contains("deflate")) { streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress); } using (StreamReader streamReader = new StreamReader(streamToRead, Encoding.UTF8)) { return streamReader.ReadToEnd(); } } return ""; } } }