package com.xxl.job.executor.service.jobhandler; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.log.XxlJobLogger; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.http.HttpMethod; import org.eclipse.jetty.http.HttpStatus; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; /** * 跨平台Http任务 * * @author xuxueli 2018-09-16 03:48:34 */ @JobHandler(value="httpJobHandler") @Component public class HttpJobHandler extends IJobHandler { @Override public ReturnT execute(String param) throws Exception { // valid if (param==null || param.trim().length()==0) { XxlJobLogger.log("URL Empty"); return FAIL; } // httpclient HttpClient httpClient = null; try { httpClient = new HttpClient(); httpClient.setFollowRedirects(false); // Configure HttpClient, for example: httpClient.start(); // Start HttpClient // request Request request = httpClient.newRequest(param); request.method(HttpMethod.GET); request.timeout(5000, TimeUnit.MILLISECONDS); // invoke ContentResponse response = request.send(); if (response.getStatus() != HttpStatus.OK_200) { XxlJobLogger.log("Http StatusCode({}) Invalid.", response.getStatus()); return FAIL; } String responseMsg = response.getContentAsString(); XxlJobLogger.log(responseMsg); return SUCCESS; } catch (Exception e) { XxlJobLogger.log(e); return FAIL; } finally { if (httpClient != null) { httpClient.stop(); } } } }