java Http请求
1. 发送get请求
/** * 发送GET请求 * * @param urlStr 目的地址 * @param params 请求参数,Map类型。 * @return 远程响应结果 */ public String sendGet(String urlStr, Map<String, String> params) throws Exception { //拼接urlStr StringBuffer sb = new StringBuffer(); for(Entry<String, String> entry : params.entrySet()) { sb.append("&").append(entry.getKey()).append("=").append(entry.getValue()); } sb.replace(0, 1, "?"); sb.insert(0, urlStr); //创建url对象 URL url = new URL(sb.toString()); //创建连接对象,我们要使用http连接 所以强转为Http连接对象 HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection(); //连接对象设置通用参数 httpConnection.setRequestProperty("Accept", "*/*"); httpConnection.setRequestProperty("Connection", "Keep-Alive"); httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"); //建立连接 httpConnection.connect(); // 获取响应头信息 Map<String, List<String>> headers = httpConnection.getHeaderFields(); //获取响应内容 BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8")); sb = new StringBuffer(); String line = null; while((line = reader.readLine()) != null) { sb.append(line); } return sb.toString(); }
2. 发送post请求
/** * 发送POST请求 * * @param urlStr 目的地址 * @param params 请求参数,Map类型。 * @return 远程响应结果 */ public String sendPost(String urlStr, Map<String, String> params) throws Exception { StringBuffer sb = new StringBuffer(); for(Entry<String, String> entry : params.entrySet()) { sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } sb.substring(sb.length() - 1, sb.length()); System.out.println(sb.toString()); //创建url对象 URL url = new URL(urlStr); //创建连接对象,我们要使用http连接 所以强转为Http连接对象 HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection(); //连接对象设置通用参数 httpConnection.setRequestProperty("Accept", "*/*"); httpConnection.setRequestProperty("Connection", "Keep-Alive"); httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"); // 设置POST方式 httpConnection.setDoInput(true); httpConnection.setDoOutput(true); // 获取HttpURLConnection对象对应的输出流 PrintWriter out = new PrintWriter(httpConnection.getOutputStream()); // 发送请求参数 out.write(sb.toString()); // flush输出流的缓冲 out.flush(); //获取响应内容 BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8")); sb = new StringBuffer(); String line = null; while((line = reader.readLine()) != null) { sb.append(line); } return sb.toString(); }