關於傳送http POST請求到另一個系統
阿新 • • 發佈:2019-01-10
剛畢業 也是剛剛接觸 這一塊的知識
接收端是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; } }