1. 程式人生 > >關於傳送http POST請求到另一個系統

關於傳送http POST請求到另一個系統

剛畢業 也是剛剛接觸 這一塊的知識

接收端是springmvc註解 設定了接收資料為json 編碼為utf-8 請求型別為post

package wzh.Http;

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;
publicclassHttpRequest {/**

* 向指定URL傳送GET方法的請求

*

* @param url

*            傳送請求的URL

* @param param

*            請求引數,請求引數應該是 name1=value1&name2=value2 的形式。

* @return URL 所代表遠端資源的響應結果*/
publicstaticString sendGet(String url, String param) {

String result="";

BufferedReaderin=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;

}
/**
* 向指定 URL 傳送POST方法的請求
*
* @param url
*            傳送請求的 URL
* @param param
*            請求引數,請求引數應該是 name1=value1&name2=value2 的形式。
* @return 所代表遠端資源的響應結果*/
publicstaticString sendPost(String url, String param) {

PrintWriterout=null;

BufferedReaderin=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;

}

}