


Menggunakan Apache HttpClient untuk permintaan HTTP dalam pembangunan API Java
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.
- 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>
Selepas memperkenalkan perpustakaan, anda boleh mula membuat permintaan HTTP.
- 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(); }
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.
- 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(); }
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.
- 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(); }
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.
- 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(); }
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.
- 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(); }
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.
- 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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

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

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

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).

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.

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 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
