package com.ydtech.modules.ins.scheduler; import org.apache.http.HttpHost; import org.apache.http.client.CookieStore; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.cookie.BasicClientCookie; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.concurrent.TimeUnit; @Component public class PiccHeartScheduler { private static Jedis jedis = new Jedis("localhost"); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); Logger logger = LoggerFactory.getLogger(getClass()); //每隔500秒执行一次 大约8分钟 // @Scheduled(fixedRate = 500000) public void testTasks() { System.out.println("定时任务执行时间:" + dateFormat.format(new Date())); try { //String url = "http://10.134.134.144:8000/favicon.ico"; String url = "http://10.134.134.144:8000/prpall/business/prepareEdit.do?bizType=PROPOSAL&editType=NEW"; String result = doGetPICC(url); //logger.info("PICC定时任务执行时间:" + dateFormat.format(new Date()) + " " + result); } catch (Exception e) { logger.info("PICC定时任务执行时间:" + e.getMessage()); } } public static String doGetPICC(String url) { String result = "success"; Map headerMap = new HashMap(); headerMap.put("Accept", "*/*"); headerMap.put("Accept-Language", "zh-CN"); headerMap.put("Referer", "http://10.134.134.144:8000/"); headerMap.put("x-requested-with", "XMLHttpRequest"); headerMap.put("Content-type", "application/x-www-form-urlencoded; charset=UTF-8"); headerMap.put("Accept-Encoding", "gzip, deflate"); 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"); headerMap.put("Host", "10.134.134.144:8000"); headerMap.put("Connection", "Keep-Alive"); headerMap.put("Pragma", "no-cache"); String picccookie = jedis.get("picccookie"); System.out.println("Stored string in redis:: " + picccookie); // headerMap.put("Cookie", "JSESSIONID=98nmd5bS6GXyQ5WrDy7xJDrtknHHdsXRkFMdB9d2n2Ldq049gbp2!-320086895; BOCINS_prpall_Cookie=n75ld5bctyGny9h2GJJqkfgHp12KTxN4qYL1fPTGccRcztpwQbgQ!-1432842303\n"); headerMap.put("Cookie", picccookie); Map cookieMap = new HashMap(); CloseableHttpClient httpClient = null; //设置代理IP、端口、协议(请分别替换) HttpHost proxy = null; if (url.contains("https")) { proxy = new HttpHost("127.0.0.1", 8888, "https"); } else { proxy = new HttpHost("127.0.0.1", 8888, "http"); } RequestConfig config = RequestConfig.custom(). setProxy(proxy). setConnectTimeout(10000). setSocketTimeout(15000). build(); CookieStore cookieStore = new BasicCookieStore(); if (cookieMap != null && cookieMap.size() > 0) { Iterator cookieIterator = cookieMap.entrySet().iterator(); //循环增加header while (cookieIterator.hasNext()) { Map.Entry elem = (Map.Entry) cookieIterator.next(); cookieStore.addCookie(new BasicClientCookie(elem.getKey(), elem.getValue())); } } httpClient = HttpClients.custom(). setProxy(proxy). setDefaultRequestConfig(config). setDefaultCookieStore(cookieStore). setConnectionTimeToLive(60000, TimeUnit.MILLISECONDS). build(); HttpGet httpGet = new HttpGet(url.trim()); if (headerMap != null && headerMap.size() > 0) { Iterator headerIterator = headerMap.entrySet().iterator(); //循环增加header while (headerIterator.hasNext()) { Map.Entry elem = (Map.Entry) headerIterator.next(); httpGet.addHeader(elem.getKey(), elem.getValue()); } } try { CloseableHttpResponse response = httpClient.execute(httpGet); } catch (IOException e) { e.printStackTrace(); result = e.getMessage(); } //String result = EntityUtils.toString(response.getEntity(), "utf-8"); //System.out.println("返回结果:" + result); //printResponse(response); return result; } }