
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);
}
}