釋出資料

public static void post(String url, byte [] data, String contentType) throws IOException {
    HttpURLConnection connection = null;
    OutputStream out = null;
    InputStream in = null;

    try {
        connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setRequestProperty("Content-Type", contentType);
        connection.setDoOutput(true);

        out = connection.getOutputStream();
        out.write(data);
        out.close();

        in = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line = null;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        in.close();

    } finally {
        if (connection != null) connection.disconnect();
        if (out != null) out.close();
        if (in != null) in.close();
    }
}

這會將資料 POST 到指定的 URL,然後逐行讀取響應。

這個怎麼運作

  • 像往常一樣,我們從 URL 獲得 HttpURLConnection
  • 使用 setRequestProperty 設定內容型別,預設情況下是 application/x-www-form-urlencoded
  • setDoOutput(true) 告訴連線我們將傳送資料。
  • 然後我們通過呼叫 getOutputStream() 獲取 OutputStream 並將資料寫入其中。完成後別忘了關閉它。
  • 最後我們閱讀了伺服器響應。