download:Spark+ES+ClickHouse 构建DMP用户画像

package wzh.Http;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {

/**  * 向指定URL发送GET办法的申请  *   * @param url  *            发送申请的URL  * @param param  *            申请参数,申请参数应该是 name1=value1&name2=value2 的模式。  * @return URL 所代表近程资源的响应后果  */ public static String sendGet(String url, String param) {      String result = "";      BufferedReader in = null;      try {          String urlNameString = url + "?" + param;          URL realUrl = new URL(urlNameString);          // 关上和URL之间的连贯          URLConnection connection = realUrl.openConnection();          // 设置通用的申请属性          connection.setRequestProperty("accept", "*/*");          connection.setRequestProperty("connection", "Keep-Alive");          connection.setRequestProperty("user-agent",                  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");          // 建设理论的连贯          connection.connect();          // 获取所有响应头字段          Map<String, List<String>> map = connection.getHeaderFields();          // 遍历所有的响应头字段          for (String key : map.keySet()) {              System.out.println(key + "--->" + map.get(key));          }          // 定义 BufferedReader输出流来读取URL的响应          in = new BufferedReader(new InputStreamReader(                  connection.getInputStream()));          String line;          while ((line = in.readLine()) != null) {              result += line;          }      } catch (Exception e) {          System.out.println("发送GET申请出现异常!" + e);          e.printStackTrace();      }      // 应用finally块来敞开输出流      finally {          try {              if (in != null) {                  in.close();              }          } catch (Exception e2) {              e2.printStackTrace();          }      }      return result;  }  /**   * 向指定 URL 发送POST办法的申请   *    * @param url   *            发送申请的 URL   * @param param   *            申请参数,申请参数应该是 name1=value1&name2=value2 的模式。   * @return 所代表近程资源的响应后果   */  public static String sendPost(String url, String param) {      PrintWriter out = null;      BufferedReader in = null;      String result = "";      try {          URL realUrl = new URL(url);          // 关上和URL之间的连贯          URLConnection conn = realUrl.openConnection();          // 设置通用的申请属性          conn.setRequestProperty("accept", "*/*");          conn.setRequestProperty("connection", "Keep-Alive");          conn.setRequestProperty("user-agent",                  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");          // 发送POST申请必须设置如下两行          conn.setDoOutput(true);          conn.setDoInput(true);          // 获取URLConnection对象对应的输入流          out = new PrintWriter(conn.getOutputStream());          // 发送申请参数          out.print(param);          // flush输入流的缓冲          out.flush();          // 定义BufferedReader输出流来读取URL的响应          in = new BufferedReader(                  new InputStreamReader(conn.getInputStream()));          String line;          while ((line = in.readLine()) != null) {              result += line;          }      } catch (Exception e) {          System.out.println("发送 POST 申请出现异常!"+e);          e.printStackTrace();      }      //应用finally块来敞开输入流、输出流      finally{          try{              if(out!=null){                  out.close();              }              if(in!=null){                  in.close();              }          }          catch(IOException ex){              ex.printStackTrace();          }      }      return result;  }      

}