/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数是 string 类型。
* @return URL 所代表远程资源的响应结果
*/public static String sendGet(String url, String param){
String result ="";
BufferedReader in =null;try{
String urlNameString = url +"?"+ param;
URL realUrl =newURL(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> map = connection.getHeaderFields();// 遍历所有的响应头字段for(String key : map.keySet()) {
System.out.println(key +"--->"+ map.get(key));
}// 定义 BufferedReader输入流来读取URL的响应in =newBufferedReader(newInputStreamReader(
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();
}
}returnresult;
}/**
* 发送POST请求
* @param url 目的地址
* @param parameters 请求参数,Map类型。
* @return 远程响应结果
*/public static String sendPost(String url, Map parameters){
String result ="";// 返回的结果BufferedReader in =null;// 读取响应输入流PrintWriter out =null;
StringBuffer sb =newStringBuffer();// 处理请求参数String params ="";// 编码之后的参数try{// 编码请求参数if(parameters.size() ==1) {for(String name : parameters.keySet()) {
sb.append(name).append("=").append(
java.net.URLEncoder.encode(parameters.get(name),"UTF-8"));
}
params = sb.toString();
}else{for(String name : parameters.keySet()) {
sb.append(name).append("=").append(
java.net.URLEncoder.encode(parameters.get(name),"UTF-8")).append("&");
}
String temp_params = sb.toString();
params = temp_params.substring(0, temp_params.length() -1);
}// 创建URL对象java.net.URL connURL =newjava.net.URL(url);// 打开URL连接java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL
.openConnection();// 设置通用属性httpConn.setRequestProperty("Accept","*/*");
httpConn.setRequestProperty("Connection","Keep-Alive");
httpConn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");// 设置POST方式httpConn.setDoInput(true);
httpConn.setDoOutput(true);// 获取HttpURLConnection对象对应的输出流out =newPrintWriter(httpConn.getOutputStream());// 发送请求参数out.write(params);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应,设置编码方式in =newBufferedReader(newInputStreamReader(httpConn
.getInputStream(),"UTF-8"));
String line;// 读取返回的内容while((line = in.readLine()) !=null) {
result += line;
}
}catch(Exception e) {
e.printStackTrace();
}finally{try{if(out !=null) {
out.close();
}if(in !=null) {
in.close();
}
}catch(IOException ex) {
ex.printStackTrace();
}
}
System.out.println("数据发送成功");returnresult;
}/**
* 向指定 URL 发送POST方法的请求
* @param url发送请求的 URL
* @param param请求参数,请求参数是 string 类型。
* @return 所代表远程资源的响应结果
*/public static String sendPost(String url, String param){
PrintWriter out =null;
BufferedReader in =null;
String result ="";try{
URL realUrl =newURL(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 =newPrintWriter(conn.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in =newBufferedReader(newInputStreamReader(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();
}
}returnresult;
}