Rumah Java javaTutorial Menggunakan Apache HttpClient untuk permintaan HTTP dalam pembangunan API Java

Menggunakan Apache HttpClient untuk permintaan HTTP dalam pembangunan API Java

Jun 18, 2023 am 09:27 AM
permintaan http java api apache httpclient

Dengan pembangunan berterusan Internet, protokol HTTP telah menjadi salah satu asas komunikasi rangkaian moden. Dalam pengaturcaraan Java, dengan menggunakan perpustakaan Apache HttpClient, anda boleh melaksanakan operasi permintaan HTTP dengan sangat mudah. Artikel ini akan memperkenalkan cara menggunakan Apache HttpClient untuk membuat permintaan HTTP dalam pembangunan API Java.

  1. Persediaan

Sebelum anda bermula, anda perlu memuat turun perpustakaan Apache HttpClient dan menambahkannya sebagai pergantungan projek. Apache HttpClient ialah perpustakaan klien HTTP Java sumber terbuka yang boleh dirujuk melalui alatan seperti Maven dan Gradle.

Berikut ialah contoh penggunaan Maven untuk merujuk Apache HttpClient:

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
</dependencies>
Salin selepas log masuk

Selepas memperkenalkan perpustakaan, anda boleh mula membuat permintaan HTTP.

  1. Menghantar permintaan GET

Menghantar permintaan GET menggunakan HttpClient adalah sangat mudah. Berikut ialah contoh yang menunjukkan cara menghantar permintaan GET melalui HttpClient dan mencetak kandungan respons:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("https://www.baidu.com");
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Kod di atas akan menghantar permintaan GET ke Baidu dan kemudian mencetak kandungan respons. Dalam kod ini, kami mencipta contoh klien CloseableHttpClient, kemudian mencipta permintaan GET menggunakan objek HttpGet dan melaksanakan permintaan itu. Entiti diperoleh dalam tindak balas, dan kemudian entiti ditukar menjadi rentetan dan output.

  1. Hantar permintaan POST

Apabila menghantar permintaan POST menggunakan HttpClient, anda boleh memilih untuk menggunakan objek UrlEncodedFormEntity atau objek MultipartEntityBuilder untuk memasukkan parameter permintaan.

Berikut ialah contoh menggunakan objek UrlEncodedFormEntity:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", "johndoe"));
params.add(new BasicNameValuePair("password", "password123"));
try {
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Kod di atas akan menghantar permintaan POST ke Baidu dan memasukkan parameter dalam badan permintaan. Dalam contoh ini, kami menggunakan objek UrlEncodedFormEntity untuk mengandungi parameter permintaan dan menetapkannya sebagai entiti untuk permintaan POST. Entiti diperoleh dalam tindak balas, dan kemudian entiti ditukar menjadi rentetan dan output.

  1. Hantar fail

Apabila anda perlu menghantar fail, anda harus menggunakan objek MultipartEntityBuilder. Berikut ialah contoh fail yang disertakan:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://localhost:8080/upload");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("file", new File("example.txt"));
httpPost.setEntity(builder.build());
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Kod di atas akan memindahkan fail bernama example.txt ke localhost:8080. Dalam contoh ini, kami menggunakan objek MultipartEntityBuilder dan menambah fail sebagai kandungan binari. Entiti diperoleh dalam tindak balas dan kemudian ditukar kepada rentetan untuk output.

  1. Tambah maklumat pengepala semasa menghantar permintaan

Kadangkala, kita perlu menambah maklumat pengepala pada permintaan. Berikut ialah contoh menambah maklumat pengepala:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
httpPost.setHeader("User-Agent", "Mozilla/5.0");
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Kod di atas akan menghantar permintaan GET kepada Baidu dan menambah maklumat pengepala Ejen Pengguna. Dalam contoh ini, kami menggunakan objek HttpPost untuk membuat permintaan GET dan memanggil kaedah setHeader untuk menambah maklumat pengepala. Entiti diperoleh dalam tindak balas dan kemudian ditukar kepada rentetan untuk output.

  1. Tetapkan tamat masa semasa menghantar permintaan

Apabila menghantar permintaan, anda juga boleh menetapkan tamat masa permintaan dan tamat masa respons. Ini menghalang pelanggan daripada menyekat selama-lamanya sementara menunggu respons daripada pelayan. Berikut ialah contoh menetapkan tamat masa:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000) // 连接超时时间
    .setSocketTimeout(5000) // 响应超时时间
    .build();
httpPost.setConfig(requestConfig);
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);    
    }
} catch (IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Kod di atas akan menghantar permintaan POST ke Baidu dan menetapkan tamat masa sambungan dan tamat masa respons kepada 5 saat. Dalam contoh ini, kami menggunakan objek RequestConfig dan menetapkan tamat masa sambungan dan tamat masa respons melalui kaedah tersuai. Entiti diperoleh dalam tindak balas dan kemudian ditukar kepada rentetan untuk output.

  1. Ringkasan

Pustaka Apache HttpClient menyediakan banyak API mudah yang membolehkan pembangun Java melaksanakan permintaan HTTP dengan sangat mudah. Artikel ini menerangkan cara menggunakan Apache HttpClient untuk menghantar permintaan GET, permintaan POST, permintaan yang menyertakan fail, permintaan yang menambah maklumat pengepala dan permintaan yang menetapkan tamat masa. Saya harap artikel ini dapat memberikan sedikit bantuan kepada pembangun Java menggunakan Apache HttpClient.

Atas ialah kandungan terperinci Menggunakan Apache HttpClient untuk permintaan HTTP dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dari awal hingga akhir: Cara menggunakan cURL sambungan php untuk membuat permintaan HTTP Dari awal hingga akhir: Cara menggunakan cURL sambungan php untuk membuat permintaan HTTP Jul 29, 2023 pm 05:07 PM

Dari awal hingga akhir: Cara menggunakan cURL sambungan php untuk permintaan HTTP Pengenalan: Dalam pembangunan web, selalunya perlu untuk berkomunikasi dengan API pihak ketiga atau pelayan jauh lain. Menggunakan cURL untuk membuat permintaan HTTP ialah cara yang biasa dan berkesan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melanjutkan cURL untuk melaksanakan permintaan HTTP dan menyediakan beberapa contoh kod praktikal. 1. Penyediaan Pertama, pastikan php telah memasang sambungan cURL. Anda boleh melaksanakan php-m|grepcurl pada baris arahan untuk menyemak

Bagaimana untuk menyelesaikan masalah sambungan permintaan HTTP yang ditolak dalam pembangunan Java Bagaimana untuk menyelesaikan masalah sambungan permintaan HTTP yang ditolak dalam pembangunan Java Jun 29, 2023 pm 02:29 PM

Bagaimana untuk menyelesaikan masalah sambungan permintaan HTTP ditolak dalam pembangunan Java Apabila membangunkan Java, kami sering menghadapi masalah sambungan permintaan HTTP ditolak. Masalah ini mungkin berlaku disebabkan oleh sekatan sebelah pelayan pada hak akses, atau tembok api rangkaian menyekat akses kepada permintaan HTTP. Membetulkan masalah ini memerlukan beberapa pelarasan pada kod dan persekitaran anda. Artikel ini akan memperkenalkan beberapa penyelesaian biasa. Semak sambungan rangkaian dan status pelayan Mula-mula, sahkan bahawa sambungan rangkaian anda adalah normal Anda boleh cuba mengakses tapak web atau perkhidmatan lain untuk melihat

Analisis sebab: ralat permintaan HTTP 504 tamat masa get laluan Analisis sebab: ralat permintaan HTTP 504 tamat masa get laluan Feb 19, 2024 pm 05:12 PM

Pengenalan ringkas kepada sebab ralat permintaan http: 504GatewayTimeout: Semasa komunikasi rangkaian, pelanggan berinteraksi dengan pelayan dengan menghantar permintaan HTTP. Walau bagaimanapun, kadangkala kami mungkin menghadapi beberapa mesej ralat semasa proses menghantar permintaan. Salah satunya ialah ralat 504GatewayTimeout. Artikel ini akan meneroka punca dan penyelesaian kepada ralat ini. Apakah ralat 504GatewayTimeout? GatewayTimeo

Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Feb 25, 2024 pm 09:24 PM

Ralat permintaan http: Penyelesaian kepada SocketError Apabila membuat permintaan rangkaian, kita sering menghadapi pelbagai ralat Salah satu masalah biasa ialah SocketError. Ralat ini dilemparkan apabila aplikasi kami tidak dapat mewujudkan sambungan dengan pelayan. Dalam artikel ini, kami akan membincangkan beberapa punca dan penyelesaian biasa SocketError. Pertama, kita perlu memahami apa itu Socket. Soket ialah protokol komunikasi yang membolehkan aplikasi untuk

Tetapkan parameter pertanyaan untuk permintaan HTTP menggunakan Golang Tetapkan parameter pertanyaan untuk permintaan HTTP menggunakan Golang Jun 02, 2024 pm 03:27 PM

Untuk menetapkan parameter pertanyaan untuk permintaan HTTP dalam Go, anda boleh menggunakan kaedah http.Request.URL.Query().Set(), yang menerima nama dan nilai parameter pertanyaan sebagai parameter. Langkah khusus termasuk: Buat permintaan HTTP baharu. Gunakan kaedah Query().Set() untuk menetapkan parameter pertanyaan. Mengekodkan permintaan. Laksanakan permintaan. Dapatkan nilai parameter pertanyaan (pilihan). Alih keluar parameter pertanyaan (pilihan).

Apakah tapak web antara muka API percuma? Apakah tapak web antara muka API percuma? Jan 05, 2024 am 11:33 AM

Laman web antara muka api percuma: 1. UomgAPI: platform yang menyediakan perkhidmatan API percuma yang stabil dan pantas, dengan lebih daripada 100 antara muka API 2. api percuma: menyediakan pelbagai antara muka API percuma 3. API JSON: menyediakan antara muka API data percuma; . Platform Terbuka AutoNavi: Menyediakan antara muka API yang berkaitan dengan peta; 5. Pengecaman muka Muka++: Menyediakan antara muka API yang berkaitan dengan pengecaman muka: Menyediakan lebih seratus antara muka API percuma, sesuai untuk pelbagai keperluan sumber; 7. Data agregat, dsb.

Bagaimana Nginx melaksanakan konfigurasi cuba semula permintaan HTTP Bagaimana Nginx melaksanakan konfigurasi cuba semula permintaan HTTP Nov 08, 2023 pm 04:47 PM

Cara Nginx melaksanakan konfigurasi percubaan semula permintaan HTTP memerlukan contoh kod khusus Nginx ialah pelayan proksi terbalik sumber terbuka yang sangat popular Ia mempunyai fungsi yang berkuasa dan pilihan konfigurasi yang fleksibel dan boleh digunakan untuk melaksanakan konfigurasi cuba semula permintaan HTTP. Dalam komunikasi rangkaian, kadangkala permintaan HTTP yang kami mulakan mungkin gagal disebabkan oleh pelbagai sebab, seperti kelewatan rangkaian, beban pelayan, dsb. Untuk meningkatkan kebolehpercayaan dan kestabilan aplikasi, kami mungkin perlu mencuba semula apabila permintaan gagal. Berikut akan memperkenalkan cara menggunakan Ng

Cara menggunakan Nginx untuk pemampatan dan penyahmampatan permintaan HTTP Cara menggunakan Nginx untuk pemampatan dan penyahmampatan permintaan HTTP Aug 02, 2023 am 10:09 AM

Cara menggunakan Nginx untuk memampatkan dan menyahmampat permintaan HTTP Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang berkuasa dan fleksibel. Apabila memproses permintaan HTTP, anda boleh menggunakan modul gzip dan gunzip yang disediakan oleh Nginx untuk memampatkan dan menyahmampat permintaan untuk mengurangkan jumlah penghantaran data dan meningkatkan kelajuan tindak balas permintaan. Artikel ini akan memperkenalkan langkah khusus tentang cara menggunakan Nginx untuk memampatkan dan menyahmampat permintaan HTTP, dan memberikan contoh kod yang sepadan. Konfigurasikan modul gzip

See all articles