/** * */ package com.taobao.top.analysis.node.io; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.taobao.top.analysis.node.job.JobTask; import com.taobao.top.analysis.node.job.JobTaskExecuteInfo; /** * Http数据源适配器 * * @author fangweng * @Email fangweng@taobao.com * 2011-11-25 * */ public class HttpInputAdaptor implements IInputAdaptor { private static final Log logger = LogFactory.getLog(HttpInputAdaptor.class); @Override public InputStream getInputFormJob(JobTask jobtask, JobTaskExecuteInfo taskExecuteInfo) { try { //特殊处理,临时,由于tbSession的bug //不能直接对ip访问,需要加上header host boolean check = false; String input = jobtask.getInput(); if(jobtask.getInput().startsWith("shttp://")) { check = true; input = input.replaceAll("shttp://", "http://"); } URL url = new URL(input); URLConnection conn = url.openConnection(); if(check) conn.addRequestProperty("host", "qinglie.taobao.com"); conn.setConnectTimeout(30000); return conn.getInputStream(); } catch (Throwable e) { logger.error("job get input error:" + jobtask.getJobName() + "," + jobtask.getInput(), e); } return null; } @Override public boolean ignore(String input) { return input.indexOf("http:") < 0; } }