public classHttpRequest {private static final Logger LOGGER = LoggerFactory.getLogger(HttpRequest.class.getName());/*** 向指定URL发送GET方法的请求
*
*@paramurl 发送请求的URL
*@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@returnURL 所代表远程资源的响应结果*/
public staticString sendGet(String url, String param) {
StringBuilder result= newStringBuilder();
BufferedReader bufferedReader= 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()) {
LOGGER.info("key : {}", map.get(key));
System.out.println(key+ "--->" +map.get(key));
}//定义 BufferedReader输入流来读取URL的响应
bufferedReader = new BufferedReader(newInputStreamReader(connection.getInputStream()));
String line;while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
}catch(Exception e) {
LOGGER.error("HTTP GET error : {}", e.getMessage());
}//使用finally块来关闭输入流
finally{try{if (bufferedReader != null) {
bufferedReader.close();
}
}catch(Exception e2) {
e2.printStackTrace();
}
}returnresult.toString();
}/*** 向指定 URL 发送POST方法的请求
*
*@paramurl 发送请求的 URL
*@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@return所代表远程资源的响应结果*/
public staticString sendPost(String url, String param) {
LOGGER.info("url : {}", url);
LOGGER.info("param : {}", param);
PrintWriter out= null;
BufferedReader in= null;
StringBuilder result= newStringBuilder();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)");
conn.setRequestProperty("accept-language", "en-US,en;q=0.5");//发送POST请求,必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);//获取URLConnection对象对应的输出流
out = newPrintWriter(conn.getOutputStream());//发送请求参数
out.print(param);//flush输出流的缓冲
out.flush();//定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(newInputStreamReader(conn.getInputStream()));
String line;while ((line = in.readLine()) != null) {
result.append(line);
}
}catch(Exception e) {
LOGGER.error("HTTP POST error : {}", e.getMessage());
}//使用finally块来关闭输出流、输入流
finally{try{if (out != null) out.close();if (in != null) in.close();
}catch(IOException ex) {
LOGGER.error("close IO error : {}", ex.getMessage());
}
}returnresult.toString();
}
}