在Java編程中,經常會使用HTTP協議來進行數據的傳輸和交互,其中POST請求被廣泛應用。本文將介紹如何使用Java進行POST請求并返回JSON數據。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; public class PostJSONExample { public static void main(String[] args) { try { // 設置POST請求的URL地址 URL url = new URL("https://jsonplaceholder.typicode.com/posts"); // 創建POST請求的連接對象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 設置請求方式和請求頭 conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json"); // 開啟輸出流,并寫入JSON數據 conn.setDoOutput(true); String json = "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}"; OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(json); wr.flush(); // 獲取請求返回的數據 BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder sb = new StringBuilder(); String line; while ((line = rd.readLine()) != null) { sb.append(line); } rd.close(); // 輸出返回的JSON數據 System.out.println("Response: " + sb.toString()); } catch (Exception e) { e.printStackTrace(); } } }
以上代碼中,我們先創建了一個URL對象,指定POST請求的地址。然后,我們創建一個HttpURLConnection連接,通過setRequestMethod方法設置請求方式為POST,通過setRequestProperty方法設置請求頭的Content-Type為application/json。接著,我們開啟輸出流,將JSON數據寫入請求體中,發送POST請求。最后,我們通過調用getInputStream方法讀取請求返回的JSON數據,并輸出到控制臺中。
代碼中涉及到的JSON數據是一個示例,可以根據實際需求進行修改。需要注意的是,在實際項目中,我們通常會使用第三方JSON庫,如fastjson或Jackson等,來進行JSON數據的生成和解析。