|  | @@ -1,121 +0,0 @@
 | 
	
		
			
				|  |  | -package com.xuxueli.executor.sample.jboot.jobhandler;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import com.xxl.job.core.biz.model.ReturnT;
 | 
	
		
			
				|  |  | -import com.xxl.job.core.handler.IJobHandler;
 | 
	
		
			
				|  |  | -import com.xxl.job.core.log.XxlJobLogger;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import java.io.BufferedReader;
 | 
	
		
			
				|  |  | -import java.io.DataOutputStream;
 | 
	
		
			
				|  |  | -import java.io.InputStreamReader;
 | 
	
		
			
				|  |  | -import java.net.HttpURLConnection;
 | 
	
		
			
				|  |  | -import java.net.URL;
 | 
	
		
			
				|  |  | -import java.util.Arrays;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 跨平台Http任务
 | 
	
		
			
				|  |  | - *
 | 
	
		
			
				|  |  | - * @author xuxueli 2018-09-16 03:48:34
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -public class HttpJobHandler extends IJobHandler {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | -    public ReturnT<String> execute(String param) throws Exception {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // param parse
 | 
	
		
			
				|  |  | -        if (param==null || param.trim().length()==0) {
 | 
	
		
			
				|  |  | -            XxlJobLogger.log("param["+ param +"] invalid.");
 | 
	
		
			
				|  |  | -            return ReturnT.FAIL;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        String[] httpParams = param.split("\n");
 | 
	
		
			
				|  |  | -        String url = null;
 | 
	
		
			
				|  |  | -        String method = null;
 | 
	
		
			
				|  |  | -        String data = null;
 | 
	
		
			
				|  |  | -        for (String httpParam: httpParams) {
 | 
	
		
			
				|  |  | -            if (httpParam.startsWith("url:")) {
 | 
	
		
			
				|  |  | -                url = httpParam.substring(httpParam.indexOf("url:") + 4).trim();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (httpParam.startsWith("method:")) {
 | 
	
		
			
				|  |  | -                method = httpParam.substring(httpParam.indexOf("method:") + 7).trim().toUpperCase();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (httpParam.startsWith("data:")) {
 | 
	
		
			
				|  |  | -                data = httpParam.substring(httpParam.indexOf("data:") + 5).trim();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // param valid
 | 
	
		
			
				|  |  | -        if (url==null || url.trim().length()==0) {
 | 
	
		
			
				|  |  | -            XxlJobLogger.log("url["+ url +"] invalid.");
 | 
	
		
			
				|  |  | -            return ReturnT.FAIL;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (method==null || !Arrays.asList("GET", "POST").contains(method)) {
 | 
	
		
			
				|  |  | -            XxlJobLogger.log("method["+ method +"] invalid.");
 | 
	
		
			
				|  |  | -            return ReturnT.FAIL;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        boolean isPostMethod = method.equals("POST");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                // request
 | 
	
		
			
				|  |  | -        HttpURLConnection connection = null;
 | 
	
		
			
				|  |  | -        BufferedReader bufferedReader = null;
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -            // connection
 | 
	
		
			
				|  |  | -            URL realUrl = new URL(url);
 | 
	
		
			
				|  |  | -            connection = (HttpURLConnection) realUrl.openConnection();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // connection setting
 | 
	
		
			
				|  |  | -            connection.setRequestMethod(method);
 | 
	
		
			
				|  |  | -            connection.setDoOutput(isPostMethod);
 | 
	
		
			
				|  |  | -            connection.setDoInput(true);
 | 
	
		
			
				|  |  | -            connection.setUseCaches(false);
 | 
	
		
			
				|  |  | -            connection.setReadTimeout(5 * 1000);
 | 
	
		
			
				|  |  | -            connection.setConnectTimeout(3 * 1000);
 | 
	
		
			
				|  |  | -            connection.setRequestProperty("connection", "Keep-Alive");
 | 
	
		
			
				|  |  | -            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
 | 
	
		
			
				|  |  | -            connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // do connection
 | 
	
		
			
				|  |  | -            connection.connect();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // data
 | 
	
		
			
				|  |  | -            if (isPostMethod && data!=null && data.trim().length()>0) {
 | 
	
		
			
				|  |  | -                DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
 | 
	
		
			
				|  |  | -                dataOutputStream.write(data.getBytes("UTF-8"));
 | 
	
		
			
				|  |  | -                dataOutputStream.flush();
 | 
	
		
			
				|  |  | -                dataOutputStream.close();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // valid StatusCode
 | 
	
		
			
				|  |  | -            int statusCode = connection.getResponseCode();
 | 
	
		
			
				|  |  | -            if (statusCode != 200) {
 | 
	
		
			
				|  |  | -                throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            // result
 | 
	
		
			
				|  |  | -            bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
 | 
	
		
			
				|  |  | -            StringBuilder result = new StringBuilder();
 | 
	
		
			
				|  |  | -            String line;
 | 
	
		
			
				|  |  | -            while ((line = bufferedReader.readLine()) != null) {
 | 
	
		
			
				|  |  | -                result.append(line);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            String responseMsg = result.toString();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            XxlJobLogger.log(responseMsg);
 | 
	
		
			
				|  |  | -            return ReturnT.SUCCESS;
 | 
	
		
			
				|  |  | -        } catch (Exception e) {
 | 
	
		
			
				|  |  | -            XxlJobLogger.log(e);
 | 
	
		
			
				|  |  | -            return ReturnT.FAIL;
 | 
	
		
			
				|  |  | -        } finally {
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                if (bufferedReader != null) {
 | 
	
		
			
				|  |  | -                    bufferedReader.close();
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if (connection != null) {
 | 
	
		
			
				|  |  | -                    connection.disconnect();
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            } catch (Exception e2) {
 | 
	
		
			
				|  |  | -                XxlJobLogger.log(e2);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -}
 |