Codepackage com.skyblue.core.database; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class RequestHelper { /** * * @Description : 向指定URL发送POST方法的请求 * @Method_Name : sendPost * @param linkUrl 地址URL * @param postData 提交数据 name1=value1&name2=value2的形式。 * @param headparam 通用的请求属性 注意 Cookie 写setRequestProperty("Cookie", cookieValue); * @return * @return : String * @Creation Date : 2012-4-7 下午02:38:59 * @version : v1.00 * @Author : skyblue * @Update Date : * @Update Author : skyblue */ @SuppressWarnings("unchecked") public static String sendPost(String linkUrl, String postData ,Map headparam){ String result = ""; URL url=null; HttpURLConnection httpUrl=null; BufferedReader reader=null; try { url = new URL(linkUrl); httpUrl = (HttpURLConnection) url.openConnection(); // 设置请求方式,默认为POST httpUrl.setRequestMethod("POST");//POST||GET // Post 请求不能使用缓存 httpUrl.setUseCaches(false); //设置通用的请求属性 if(headparam!=null){ Iterator it=headparam.entrySet().iterator(); while(it.hasNext()){ Map.Entry entry = (Map.Entry) it.next(); //写头 httpUrl.setRequestProperty((String)entry.getKey(),(String)headparam.get(entry.getKey())); } } //提交的数据 if(postData!=null&&!"".equals(postData)){ httpUrl.setDoOutput(true); httpUrl.getOutputStream().write(postData.getBytes()); httpUrl.getOutputStream().flush(); }else{ httpUrl.connect(); } // 获取所有响应头字段 java.util.Map<String, java.util.List<String>> map = httpUrl.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } int code = httpUrl.getResponseCode(); if(code==200){ reader = new BufferedReader(new InputStreamReader(httpUrl.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); result+=line; } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { try { if (reader != null) { reader.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } /** * * @Description : 向指定URL发送GET方法的请求 * @Method_Name : sendGet * @param url 发送请求的URL * @param getData 请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @param headparam 通用的请求属性 注意 Cookie 写setRequestProperty("Cookie", cookieValue); * @return * @return : String * @Creation Date : 2012-4-7 下午02:40:49 * @version : v1.00 * @Author : skyblue * @Update Date : * @Update Author : skyblue */ @SuppressWarnings("unchecked") public static String sendGet(String url, String getData,Map headparam) { String result = ""; BufferedReader in = null; URLConnection conn =null; try { // 拼接 GET参数 if(getData!=null&&!"".equals(getData)){ url = url + "?" + getData; } URL realUrl = new URL(url); // 打开和URL之间的连接 conn = realUrl.openConnection(); // 设置通用的请求属性 if (headparam != null) { Iterator it = headparam.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); conn.setRequestProperty((String) entry.getKey(),(String) headparam.get(entry.getKey())); } } // 建立实际的连接 conn.connect(); // 获取所有响应头字段 java.util.Map<String, java.util.List<String>> map = conn.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.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(); } conn=null; } catch (IOException ex) { ex.printStackTrace(); } } return result; } // 提供主方法,测试发送GET请求 @SuppressWarnings("unchecked") public static void main(String args[]) { // 发送GET请求 Map map=new HashMap(); map.put("Content-Type", "application/x-www-form-urlencoded"); String s1 = RequestHelper.sendPost("http://www.ip138.com/ips.asp","ip=119.119.100.121",map); System.out.println(s1); } }