packagecom.xy.aider;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.List;importjava.util.Map;/*** 后台发送跨域的post和get请求
*@authorHeng Hui
**/
public classSendHttpRequestUtil {/*** 向指定URL发送GET方法的请求
*
*@paramurl
* 发送请求的URL
*@paramparam
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@returnURL 所代表远程资源的响应结果*/
public staticString 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)");//备用方案//conn.setRequestProperty("UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//建立实际的连接
connection.connect();//获取所有响应头字段
Map> map =connection.getHeaderFields();//遍历所有的响应头字段
for(String key : map.keySet()) {
System.out.println(key+ "--->" +map.get(key));
}//定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(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;
}/*** 向指定 URL 发送POST方法的请求
*@paramurl 发送请求的 URL
*@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@return所代表远程资源的响应结果*/
public staticString 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)");//备用方案//conn.setRequestProperty("UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);//1.获取URLConnection对象对应的输出流
out = newPrintWriter(conn.getOutputStream());//2.中文有乱码的需要将PrintWriter改为如下//out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8")//发送请求参数
out.print(param);//flush输出流的缓冲
out.flush();//定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(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();
}
}
System.out.println("post推送结果:"+result);returnresult;
}///数据类似这种写入
public voidtestDemo(){//发送 GET 请求
String s=SendHttpRequestUtil.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
System.out.println(s);//发送 POST 请求
String sr=SendHttpRequestUtil.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
System.out.println(sr);
}
}