PiccHeartScheduler.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.ydtech.modules.ins.scheduler;
  2. import org.apache.http.HttpHost;
  3. import org.apache.http.client.CookieStore;
  4. import org.apache.http.client.config.RequestConfig;
  5. import org.apache.http.client.methods.CloseableHttpResponse;
  6. import org.apache.http.client.methods.HttpGet;
  7. import org.apache.http.impl.client.BasicCookieStore;
  8. import org.apache.http.impl.client.CloseableHttpClient;
  9. import org.apache.http.impl.client.HttpClients;
  10. import org.apache.http.impl.cookie.BasicClientCookie;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import org.springframework.stereotype.Component;
  15. import redis.clients.jedis.Jedis;
  16. import java.io.IOException;
  17. import java.text.SimpleDateFormat;
  18. import java.util.Date;
  19. import java.util.HashMap;
  20. import java.util.Iterator;
  21. import java.util.Map;
  22. import java.util.concurrent.TimeUnit;
  23. @Component
  24. public class PiccHeartScheduler {
  25. private static Jedis jedis = new Jedis("localhost");
  26. private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
  27. Logger logger = LoggerFactory.getLogger(getClass());
  28. //每隔500秒执行一次 大约8分钟
  29. // @Scheduled(fixedRate = 500000)
  30. public void testTasks() {
  31. System.out.println("定时任务执行时间:" + dateFormat.format(new Date()));
  32. try {
  33. //String url = "http://10.134.134.144:8000/favicon.ico";
  34. String url = "http://10.134.134.144:8000/prpall/business/prepareEdit.do?bizType=PROPOSAL&editType=NEW";
  35. String result = doGetPICC(url);
  36. //logger.info("PICC定时任务执行时间:" + dateFormat.format(new Date()) + " " + result);
  37. } catch (Exception e) {
  38. logger.info("PICC定时任务执行时间:" + e.getMessage());
  39. }
  40. }
  41. public static String doGetPICC(String url) {
  42. String result = "success";
  43. Map<String, String> headerMap = new HashMap<String, String>();
  44. headerMap.put("Accept", "*/*");
  45. headerMap.put("Accept-Language", "zh-CN");
  46. headerMap.put("Referer", "http://10.134.134.144:8000/");
  47. headerMap.put("x-requested-with", "XMLHttpRequest");
  48. headerMap.put("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
  49. headerMap.put("Accept-Encoding", "gzip, deflate");
  50. headerMap.put("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)\n");
  51. headerMap.put("Host", "10.134.134.144:8000");
  52. headerMap.put("Connection", "Keep-Alive");
  53. headerMap.put("Pragma", "no-cache");
  54. String picccookie = jedis.get("picccookie");
  55. System.out.println("Stored string in redis:: " + picccookie);
  56. // headerMap.put("Cookie", "JSESSIONID=98nmd5bS6GXyQ5WrDy7xJDrtknHHdsXRkFMdB9d2n2Ldq049gbp2!-320086895; BOCINS_prpall_Cookie=n75ld5bctyGny9h2GJJqkfgHp12KTxN4qYL1fPTGccRcztpwQbgQ!-1432842303\n");
  57. headerMap.put("Cookie", picccookie);
  58. Map<String, String> cookieMap = new HashMap<String, String>();
  59. CloseableHttpClient httpClient = null;
  60. //设置代理IP、端口、协议(请分别替换)
  61. HttpHost proxy = null;
  62. if (url.contains("https")) {
  63. proxy = new HttpHost("127.0.0.1", 8888, "https");
  64. } else {
  65. proxy = new HttpHost("127.0.0.1", 8888, "http");
  66. }
  67. RequestConfig config = RequestConfig.custom().
  68. setProxy(proxy).
  69. setConnectTimeout(10000).
  70. setSocketTimeout(15000).
  71. build();
  72. CookieStore cookieStore = new BasicCookieStore();
  73. if (cookieMap != null && cookieMap.size() > 0) {
  74. Iterator cookieIterator = cookieMap.entrySet().iterator(); //循环增加header
  75. while (cookieIterator.hasNext()) {
  76. Map.Entry<String, String> elem = (Map.Entry<String, String>) cookieIterator.next();
  77. cookieStore.addCookie(new BasicClientCookie(elem.getKey(), elem.getValue()));
  78. }
  79. }
  80. httpClient = HttpClients.custom().
  81. setProxy(proxy).
  82. setDefaultRequestConfig(config).
  83. setDefaultCookieStore(cookieStore).
  84. setConnectionTimeToLive(60000, TimeUnit.MILLISECONDS).
  85. build();
  86. HttpGet httpGet = new HttpGet(url.trim());
  87. if (headerMap != null && headerMap.size() > 0) {
  88. Iterator headerIterator = headerMap.entrySet().iterator(); //循环增加header
  89. while (headerIterator.hasNext()) {
  90. Map.Entry<String, String> elem = (Map.Entry<String, String>) headerIterator.next();
  91. httpGet.addHeader(elem.getKey(), elem.getValue());
  92. }
  93. }
  94. try {
  95. CloseableHttpResponse response = httpClient.execute(httpGet);
  96. } catch (IOException e) {
  97. e.printStackTrace();
  98. result = e.getMessage();
  99. }
  100. //String result = EntityUtils.toString(response.getEntity(), "utf-8");
  101. //System.out.println("返回结果:" + result);
  102. //printResponse(response);
  103. return result;
  104. }
  105. }