ADServiceHelper.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using PDF_Master.Properties;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Drawing.Imaging;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Management;
  11. using System.Net;
  12. using System.Runtime.InteropServices;
  13. using System.Security.Cryptography;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. namespace PDF_Master.Helper
  17. {
  18. //本辅助类不使用viewmodel,因为同时在PDFreaderPro上使用
  19. public static class ADServiceHelper
  20. {
  21. public static bool IsUpdate=false;
  22. public static string RequestHost = "http://test-store.kdan.cn:3019";
  23. public static string AdUrl = "/api/advertise-new";
  24. public static string ImageUrl;
  25. public static String GetAD(string appname)
  26. {
  27. HttpWebResponse response = null;
  28. ServicePointManager.DefaultConnectionLimit = 200;
  29. string post = $"?app_name={appname}";
  30. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + AdUrl+post);
  31. request.Method = "Get";
  32. request.ContentType = "text/html;charset=UTF-8";
  33. //request.Accept = "application/vnd.api+json;version=1";
  34. request.Timeout = 20000;
  35. request.ServicePoint.Expect100Continue = false;
  36. try
  37. {
  38. response = (HttpWebResponse)request.GetResponse();
  39. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  40. {
  41. string responseData = reader.ReadToEnd();
  42. Console.WriteLine(responseData);
  43. reader.Close();
  44. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  45. if (response != null)
  46. {
  47. response.Close();
  48. }
  49. if (request != null)
  50. {
  51. request.Abort();
  52. }
  53. Console.WriteLine(responseData);
  54. if (jobject["code"].ToObject<string>().ToLower() == "200")
  55. {
  56. //Console.WriteLine(jobject["list"].ToObject<string>());
  57. JArray jarr = JArray.Parse(jobject["list"].ToString());
  58. foreach (var j in jarr)
  59. {
  60. Console.WriteLine(j["detail"].ToString());
  61. JObject jobject2 = (JObject)JsonConvert.DeserializeObject(j["detail"].ToString());
  62. Settings.Default.ADDate.ADhiddenSidebar = jobject2["productsidebar"]["hidden"].ToObject<string>();
  63. Settings.Default.ADDate.ADStartTime = jobject2["startTime"].ToObject<long>();
  64. Settings.Default.ADDate.ADEndTime = jobject2["endTime"].ToObject<long>();
  65. if (Settings.Default.ADDate.ADVersion != jobject2["version"].ToObject<string>())
  66. {
  67. //清除ADTemp文件夹及该目录中的所有子内容
  68. string ADPath = Path.Combine(App.CurrentPath, "ADTemp");
  69. DirectoryInfo Scantempfolder = new DirectoryInfo(ADPath);
  70. if (Scantempfolder.Exists)
  71. {
  72. Directory.Delete(ADPath, true);
  73. }
  74. IsUpdate = true;
  75. Settings.Default.ADDate.ADSidebar = jobject2["productsidebar"]["imageURL"]["en"].ToObject<string>();
  76. Settings.Default.ADDate.ADLinkSidebar = jobject2["productsidebar"]["linkURL"]["en"].ToObject<string>();
  77. Settings.Default.ADDate.ADVersion = jobject2["version"].ToObject<string>();
  78. Settings.Default.Save();
  79. }
  80. }
  81. if(IsUpdate==true)
  82. {
  83. string path = App.CachePath.ADFilePath;
  84. string FileName = path + "\\" + 1 + ".png";
  85. WebClient client = new WebClient();
  86. client.DownloadFile(Settings.Default.ADDate.ADSidebar, FileName);
  87. }
  88. }
  89. string str1 = System.Environment.CurrentDirectory;
  90. return jobject["code"].ToObject<string>().ToLower();
  91. }
  92. }
  93. catch (System.Net.WebException e)
  94. {
  95. Console.WriteLine(e.Message);
  96. if (e.Message == "未能解析此远程名称: 'test-store.kdan.cn'")
  97. {
  98. return "404";
  99. }
  100. else return "0000";
  101. }
  102. }
  103. public static void Down(string url, string dtnow)
  104. {
  105. WebRequest wreq = WebRequest.Create(url);
  106. HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
  107. Stream s = wresp.GetResponseStream();
  108. System.Drawing.Image img;
  109. img = System.Drawing.Image.FromStream(s);
  110. img.Save("E:\\" + dtnow, ImageFormat.Jpeg);
  111. MemoryStream ms = new MemoryStream();
  112. img.Save(ms, ImageFormat.Jpeg);
  113. img.Dispose();
  114. }
  115. }
  116. }