Java是一種廣泛使用的編程語言,在Web開發(fā)中經(jīng)常需要使用Post請求來發(fā)送JSON數(shù)據(jù)。Post請求是一種HTTP請求方法,它用于向服務(wù)器提交數(shù)據(jù)。JSON數(shù)據(jù)則是一種輕量級數(shù)據(jù)交換格式。使用Java發(fā)起Post請求并發(fā)送JSON數(shù)據(jù)可以使用HttpURLConnection或Apache HttpClient等類庫。
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpPostJson { public static void main(String[] args) throws Exception { String url = "http://example.com/api"; String json = "{ \"name\": \"John\", \"age\": 30 }"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "application/json"); con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(json); wr.flush(); wr.close(); int responseCode = con.getResponseCode(); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } }
代碼中首先設(shè)置了請求地址和JSON數(shù)據(jù)。然后使用URL對象和HttpURLConnection類創(chuàng)建連接。設(shè)置請求方法為POST,并設(shè)置Content-Type為application/json。設(shè)置DoOutput為true,表示需要輸出請求數(shù)據(jù)。使用DataOutputStream類的writeBytes方法將JSON數(shù)據(jù)發(fā)送到服務(wù)器。獲取服務(wù)器響應(yīng)代碼和響應(yīng)內(nèi)容。最后關(guān)閉流并打印響應(yīng)內(nèi)容。