Rumah > Java > javaTutorial > Menganalisis teknologi utama perangkak Java: Permintaan dan respons HTTP didedahkan

Menganalisis teknologi utama perangkak Java: Permintaan dan respons HTTP didedahkan

王林
Lepaskan: 2023-12-26 09:16:22
asal
1094 orang telah melayarinya

Menganalisis teknologi utama perangkak Java: Permintaan dan respons HTTP didedahkan

Terokai teknologi teras perangkak Java: Permintaan dan tindak balas HTTP

Pengenalan:
Dengan perkembangan Internet, sejumlah besar maklumat disimpan pada rangkaian. Dalam senario tertentu, kami mungkin perlu mengekstrak data daripada halaman web atau melakukan pengumpulan data, yang memerlukan penggunaan teknologi perangkak. Sebagai bahasa pengaturcaraan yang berkuasa, Java juga digunakan secara meluas dalam medan perangkak. Untuk melaksanakan perangkak Java yang cekap dan stabil, kita perlu memahami teknologi teras permintaan dan respons HTTP. Artikel ini akan memperkenalkan pengetahuan asas tentang permintaan dan respons HTTP serta memberikan contoh kod khusus.

1. Permintaan HTTP
1.1, protokol HTTP
HTTP (HyperText Transfer Protocol) ialah protokol lapisan aplikasi yang digunakan untuk menghantar dokumen hipermedia (seperti HTML). Ia berdasarkan model klien/pelayan dan berkomunikasi melalui permintaan/tindak balas.

1.2, URL dan URI
URL (Uniform Resource Locator) ialah jujukan aksara yang digunakan untuk mengenal pasti dan mencari sumber di Internet. Sumber di Internet boleh dikenal pasti secara unik menggunakan URL. Contoh URL: https://www.example.com/index.html.

URI (Uniform Resource Identifier) ​​​​adalah rentetan yang digunakan untuk mengenal pasti sumber tertentu. Ia mengandungi berbilang subkategori seperti URL dan URN (Nama Sumber Seragam). URL ialah sejenis URI.

1.3. Kaedah permintaan HTTP
Kaedah permintaan HTTP digunakan untuk menentukan jenis operasi yang akan dilakukan oleh pelanggan pada sumber yang diminta oleh pelayan. Kaedah permintaan biasa termasuk GET, POST, PUT, DELETE, dsb.

Berikut ialah contoh kod yang menggunakan URLConnection Java untuk menghantar permintaan GET:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpRequestExample {
    public static void main(String[] args) throws Exception {
        // 请求的URL
        String url = "https://www.example.com/index.html";

        // 创建URL对象
        URL obj = new URL(url);

        // 打开连接
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方法为GET
        con.setRequestMethod("GET");

        // 获取响应状态码
        int responseCode = con.getResponseCode();
        System.out.println("响应状态码:" + responseCode);

        // 读取响应内容
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 打印响应内容
        System.out.println("响应内容:" + response.toString());
    }
}
Salin selepas log masuk

2 Respons HTTP
2.1 Kod status respons
Respon HTTP mengandungi baris status, yang mengandungi kod status 3 digit untuk menunjukkan. Hasil pemprosesan permintaan. Kod status biasa termasuk 200 (berjaya), 404 (tidak ditemui), 500 (ralat pelayan dalaman), dsb.

2.2. Pengepala respons dan badan respons
Respon HTTP mengandungi satu atau lebih pengepala respons dan badan respons. Pengepala respons mengandungi metadata yang berkaitan dengan respons, seperti Jenis Kandungan (jenis kandungan), Panjang Kandungan (panjang kandungan), dsb. Badan respons mengandungi kandungan respons sebenar.

Berikut ialah contoh kod yang menggunakan HttpURLConnection Java untuk menerima respons HTTP:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpResponseExample {
    public static void main(String[] args) throws Exception {
        // 请求的URL
        String url = "https://www.example.com/index.html";

        // 创建URL对象
        URL obj = new URL(url);

        // 打开连接
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方法为GET
        con.setRequestMethod("GET");

        // 获取响应状态码
        int responseCode = con.getResponseCode();
        System.out.println("响应状态码:" + responseCode);

        // 获取响应头
        StringBuilder responseHeader = new StringBuilder();
        for (int i = 1; i <= con.getHeaderFields().size(); i++) {
            responseHeader.append(con.getHeaderFieldKey(i)).append(": ").append(con.getHeaderField(i)).append("
");
        }
        System.out.println("响应头:
" + responseHeader.toString());

        // 读取响应内容
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder responseBody = new StringBuilder();
        while ((inputLine = in.readLine()) != null) {
            responseBody.append(inputLine);
        }
        in.close();

        // 打印响应内容
        System.out.println("响应内容:" + responseBody.toString());
    }
}
Salin selepas log masuk

Kesimpulan:
Artikel ini memperkenalkan teknologi teras dalam perangkak Java - Permintaan dan respons HTTP. Dengan memahami pengetahuan asas kaedah permintaan HTTP, URL, URI, dsb., kami boleh menghantar pelbagai jenis permintaan HTTP mengikut keperluan. Dengan memahami kod status respons HTTP, pengepala respons dan badan respons, kami boleh mendapatkan respons yang dikembalikan oleh pelayan dan mengekstrak data yang diperlukan daripadanya. Teknologi ini boleh membantu kami membina perangkak Java yang cekap dan stabil.

Atas ialah kandungan terperinci Menganalisis teknologi utama perangkak Java: Permintaan dan respons HTTP didedahkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan