1. 程式人生 > >呼叫http介面方式

呼叫http介面方式

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("完整結束");
        
    }