using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PDF_Master.Properties; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Management; using System.Net; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace PDF_Master.Helper { //本辅助类不使用viewmodel,因为同时在PDFreaderPro上使用 public static class ADServiceHelper { public static bool IsUpdate=false; public static string RequestHost = "http://test-store.kdan.cn:3019"; public static string AdUrl = "/api/advertise-new"; public static string ImageUrl; public static String GetAD(string appname) { HttpWebResponse response = null; ServicePointManager.DefaultConnectionLimit = 200; string post = $"?app_name={appname}"; HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + AdUrl+post); request.Method = "Get"; request.ContentType = "text/html;charset=UTF-8"; //request.Accept = "application/vnd.api+json;version=1"; request.Timeout = 20000; request.ServicePoint.Expect100Continue = false; try { response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { string responseData = reader.ReadToEnd(); Console.WriteLine(responseData); reader.Close(); JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData); if (response != null) { response.Close(); } if (request != null) { request.Abort(); } Console.WriteLine(responseData); if (jobject["code"].ToObject().ToLower() == "200") { //Console.WriteLine(jobject["list"].ToObject()); JArray jarr = JArray.Parse(jobject["list"].ToString()); foreach (var j in jarr) { Console.WriteLine(j["detail"].ToString()); JObject jobject2 = (JObject)JsonConvert.DeserializeObject(j["detail"].ToString()); Settings.Default.ADDate.ADhiddenSidebar = jobject2["productsidebar"]["hidden"].ToObject(); Settings.Default.ADDate.ADStartTime = jobject2["startTime"].ToObject(); Settings.Default.ADDate.ADEndTime = jobject2["endTime"].ToObject(); if (Settings.Default.ADDate.ADVersion != jobject2["version"].ToObject()) { //清除ADTemp文件夹及该目录中的所有子内容 string ADPath = Path.Combine(App.CurrentPath, "ADTemp"); DirectoryInfo Scantempfolder = new DirectoryInfo(ADPath); if (Scantempfolder.Exists) { Directory.Delete(ADPath, true); } IsUpdate = true; Settings.Default.ADDate.ADSidebar = jobject2["productsidebar"]["imageURL"]["en"].ToObject(); Settings.Default.ADDate.ADLinkSidebar = jobject2["productsidebar"]["linkURL"]["en"].ToObject(); Settings.Default.ADDate.ADVersion = jobject2["version"].ToObject(); Settings.Default.Save(); } } if(IsUpdate==true) { string path = App.CachePath.ADFilePath; string FileName = path + "\\" + 1 + ".png"; WebClient client = new WebClient(); client.DownloadFile(Settings.Default.ADDate.ADSidebar, FileName); } } string str1 = System.Environment.CurrentDirectory; return jobject["code"].ToObject().ToLower(); } } catch (System.Net.WebException e) { Console.WriteLine(e.Message); if (e.Message == "未能解析此远程名称: 'test-store.kdan.cn'") { return "404"; } else return "0000"; } } public static void Down(string url, string dtnow) { WebRequest wreq = WebRequest.Create(url); HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse(); Stream s = wresp.GetResponseStream(); System.Drawing.Image img; img = System.Drawing.Image.FromStream(s); img.Save("E:\\" + dtnow, ImageFormat.Jpeg); MemoryStream ms = new MemoryStream(); img.Save(ms, ImageFormat.Jpeg); img.Dispose(); } } }