Xử lý HTTP POST với JSON trong Java: Hướng dẫn toàn diện
Xử lý HTTP POST với JSON trong Java: Hướng dẫn toàn diện
Trong thế lập trình hiện đại, việc gửi và nhận dữ liệu JSON thông qua HTTP POST là một kỹ năng thiết yếu. Java cung cấp nhiều cách tiếp cận để thực hiện tác vụ này, mỗi phương pháp có ưu điểm riêng phù hợp với các yêu cầu khác nhau.
Sử dụng HttpURLConnection
HttpURLConnection là lớp cơ bản trong Java để thực hiện các yêu cầu HTTP. Để gửi JSON qua POST, chúng ta cần:
URL url = new URL("https://api.example.com/data");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonInputString = "{\"name\":\"myname\",\"age\":\"20\"}";
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
HttpClient và Gson hiện đại
Với Java 11 trở đi, HttpClient trở thành API tiêu chuẩn:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.example.com/data"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"myname\",\"age\":\"20\"}"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Kết hợp với Gson để xử lý JSON:
Gson gson = new Gson();
Map<String, String> data = new HashMap<>();
data.put("name", "myname");
data.put("age", "20");
String json = gson.toJson(data);
Xử lý bất đồng bộ
Java cũng hỗ trợ gửi yêu cầu POST bất đồng bộ:
HttpClient client = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_2)
.build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.example.com/data"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"myname\",\"age\":\"20\"}"))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
Xử lý lỗi và ngoại lệ
Luôn chuẩn bị xử lý các tình huống lỗi:
try {
// Mã gửi POST request
} catch (MalformedURLException e) {
System.err.println("URL không hợp lệ: " + e.getMessage());
} catch (IOException e) {
System.err.println("Lỗi kết nối: " + e.getMessage());
} catch (InterruptedException e) {
System.err.println("Yêu cầu bị gián đoạn: " + e.getMessage());
Thread.currentThread().interrupt();
}
Kết luận
Việc gửi dữ liệu JSON qua HTTP POST trong Java có thể được thực hiện bằng nhiều cách khác nhau, từ sử dụng HttpURLConnection cơ bản đến HttpClient hiện đại. Việc lựa chọn phương pháp phù hợp phụ thuộc vào phiên bản Java và yêu cầu cụ thể của dự án.
Java #HTTPPOST #JSON #JavaProgramming #HttpClient #Gson #APIIntegration
Không đọc được JSON hợp lệ.
Xem đầy đủ Kết quả tìm kiếm video java http post jsonKhông đọc được JSON hợp lệ.
Xem đầy đủ Kết quả tìm kiếm hình ảnhjava http post json