package com.sinosoft.ap.wj.common.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
???/**
????* 向指定URL发送GET方法的请求
????*
????* @param url
????* ???????????发送请求的URL
????* @param param
????* ???????????请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
????* @return URL 所代表远程资源的响应结果
????*/
???public static String sendGet(String url, String param) {
???????String result = "";
???????BufferedReader in = null;
???????try {
???????????String urlNameString = url + "?" + param;
???????????URL realUrl = new URL(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<String, List<String>> map = connection.getHeaderFields();
???????????// 遍历所有的响应头字段
???????????for (String key : map.keySet()) {
???????????????System.out.println(key + "--->" + map.get(key));
???????????}
???????????// 定义 BufferedReader输入流来读取URL的响应
???????????in = new BufferedReader(new InputStreamReader(
???????????????????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();
???????????}
???????}
???????return result;
???}
???/**
????* 向指定 URL 发送POST方法的请求
????*
????* @param url
????* ???????????发送请求的 URL
????* @param param
????* ???????????请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
????* @return 所代表远程资源的响应结果
????*/
???public static String sendPost(String url, String param) {
???????PrintWriter out = null;
???????BufferedReader in = null;
???????String result = "";
???????try {
???????????URL realUrl = new URL(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 = new PrintWriter(conn.getOutputStream());
???????????// 发送请求参数
???????????out.print(param);
???????????// flush输出流的缓冲
???????????out.flush();
???????????// 定义BufferedReader输入流来读取URL的响应
???????????in = new BufferedReader(
???????????????????new InputStreamReader(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();
???????????}
???????}
???????return result;
???} ???
}
向指定URL发送GET和POST请求
原文地址:http://www.cnblogs.com/dalianmao890710/p/7472140.html