呼叫http介面方式
阿新 • • 發佈:2018-12-21
public static void main(String[] args) throws Exception{ //介面地址 String path = "http://ip:埠/resource_manager/user/login"; JSONObject paramJson=new JSONObject(); //傳入引數 paramJson.put("username","11"); paramJson.put("password","11"); System.out.println(paramJson.toString()); URL url = new URL(path); //開啟和url之間的連線 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); PrintWriter out = null; //請求方式 conn.setRequestMethod("POST"); //設定通用的請求屬性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); //設定請求引數為json格式 conn.setRequestProperty("Content-Type", " application/json"); //設定是否向httpUrlConnection輸出,設定是否從httpUrlConnection讀入,此外發送post請求 必須設定這兩個 //最常用的Http請求無非是get和post,get請求可以獲取靜態頁面,也可以把引數放在URL字串後面,傳遞給servlet, //post與get的 不同之處在於post的引數不是放在URL字串裡面,而是放在http請求的正文內。 conn.setDoOutput(true); conn.setDoInput(true); //獲取URLConnection物件對應的輸出流 out = new PrintWriter(conn.getOutputStream()); out.print(data); out.print(paramJson.toString()); //緩衝資料 out.flush(); //獲取URLConnection物件對應的輸入流 InputStream is = conn.getInputStream(); //構造一個字元流快取 BufferedReader br = new BufferedReader(new InputStreamReader(is)); String str = ""; while ((str = br.readLine()) != null) { System.out.println(str); } is.close(); //斷開連線,最好寫上,disconnect是在底層tcp socket連結空閒時才切斷。如果正在被其他執行緒使用就不切斷。 //固定多執行緒的話,如果不disconnect,連結會增多,直到收發不出資訊。寫上disconnect後正常一些。 conn.disconnect(); System.out.println("完整結束"); }