package com.javaweb.third.baidu.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util.Map; /** * http 工具类 * @author wujiyue */ public class HttpUtil { public static String post(String requestUrl, String accessToken, String params) throws Exception { String generalUrl = requestUrl + "?access_token=" + accessToken; URL url = new URL(generalUrl); // 打开和URL之间的连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 设置通用的请求属性 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("Connection", "Keep-Alive"); //connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); // 得到请求的输出流对象 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.writeBytes(params); out.flush(); out.close(); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map> headers = connection.getHeaderFields(); // 定义 BufferedReader输入流来读取URL的响应 BufferedReader in = null; if (requestUrl.contains("nlp")){ in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK")); } else{ in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); } String result = ""; String getLine; while ((getLine = in.readLine()) != null) { result += getLine; } in.close(); //System.out.println("result:" + result); return result; } public static String post(String requestUrl, String accessToken, String params,String contentType) throws Exception { String generalUrl = requestUrl + "?access_token=" + accessToken; URL url = new URL(generalUrl); // 打开和URL之间的连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 设置通用的请求属性 if(contentType!=null&&contentType.length()>0){ connection.setRequestProperty("Content-Type", contentType); }else{ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); } connection.setRequestProperty("Connection", "Keep-Alive"); //connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); // 得到请求的输出流对象 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.writeBytes(params); out.flush(); out.close(); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map> headers = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : headers.keySet()) { System.out.println(key + "--->" + headers.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 BufferedReader in = null; if (requestUrl.contains("nlp")){ in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK")); } else{ in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); } String result = ""; String getLine; while ((getLine = in.readLine()) != null) { result += getLine; } in.close(); return result; } }