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: