Java:
ส่งคำขอ HTTP
วิธีการ:
ลองใช้ HttpClient
, HttpRequest
และ HttpResponse
ของ Java 11 เพื่อส่งคำขอ GET และดึงข้อมูลมาดู:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class HttpRequestExample {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
}
}
คุณรันมัน และวอล่า—คำตอบจากเซิร์ฟเวอร์ อยู่ในคอนโซลของคุณเลย
การลงลึก
ก่อน Java 11, การส่งคำขอ HTTP เป็นกระบวนการที่ซับซ้อนมากขึ้นและมักจะต้องใช้ไลบรารีของบุคคลที่สาม เช่น Apache HttpClient HttpURLConnection
ก็เป็นตัวเลือกหนึ่ง แต่ดูเหมือนจะล้าสมัย—ยุ่งยากและน้อยความโดดเด่น
ด้วย Java 11, HttpClient
เข้ามาช่วยทำให้กระบวนการง่ายขึ้นด้วยวิธีการ .send
แบบซิงโครนัส และ .sendAsync
แบบอะซิงโครนัส มันเป็นแบบรีแอคทีฟและไม่บล็อก—หมายความว่าคุณไม่ต้องรออย่างหงุดหงิดขณะที่มันทำงาน สิ่งนี้สอดคล้องกับความต้องการในความเป็นประสิทธิภาพของแอปสมัยใหม่ที่รอคือการเสียเวลา
มีทางเลือกอื่นๆแทนไลบรารีมาตรฐานของ Java หรือไม่? ไลบรารีเช่น OkHttp และ Retrofit ยังคงเป็นที่ชื่นชอบเมื่อต้องการคุณสมบัติที่เข้มแข็งและการกำหนดค่าที่กำหนดเอง และทำไมไม่? พวกเขามาพร้อมกับข้อดีของตัวเอง เช่น การรวมการเชื่อมต่อและการแปลงการเรียกออกจากกล่อง
ดูเพิ่มเติม
ดำดิ่งลึกลงไปใน Java HttpClient ด้วยเอกสาร Java อย่างเป็นทางการ:
รู้สึกชอบผจญภัย? สำรวจ OkHttp และ Retrofit: