Jadual Kandungan
Membuat dan Mengkonfigurasi HttpClient
Menghantar permintaan segerak dan tidak segerak
Permintaan segerak (menyekat)
Permintaan Asynchronous (tidak menyekat)
Mengendalikan jenis dan data permintaan yang berbeza
Pengandaran badan dan jenis tindak balas biasa
Pengendalian ralat dan tamat tempoh
Rumah Java javaTutorial Cara Menggunakan API HttpClient di Java

Cara Menggunakan API HttpClient di Java

Aug 12, 2025 pm 02:27 PM
java

Inti menggunakan Java HttpClient API adalah untuk membuat httpclient, membina httprequest, dan mengendalikan httpresponse. 1. Gunakan httpclient.newhttpClient () atau httpclient.newbuilder () untuk mengkonfigurasi waktu, proksi, dan lain -lain untuk membuat pelanggan; 2. Gunakan httprequest.newBuilder () untuk menetapkan uri, kaedah, tajuk, dan badan untuk membina permintaan; 3. Hantar permintaan segerak melalui klien.send () atau client.sendasync () untuk menghantar permintaan tak segerak; 4. Gunakan bodyhandlers.ofstring (), buka (), dan lain -lain untuk memproses badan tindak balas; 5. Tetapkan masa tamat dan menangkap IOException dan menggangguTexception atau gunakan luar biasa () untuk mengendalikan kesilapan tak segerak; 6. Gunakan semula contoh httpclient untuk meningkatkan kecekapan. API ini telah disediakan sejak Java 11, menyokong fungsi HTTP moden, mudah dan fleksibel dalam reka bentuk, dan sesuai untuk pelbagai senario dari mudah ke interaksi JSON asynchronous kompleks.

Cara Menggunakan API HttpClient di Java

Menggunakan API HTTPClient di Java adalah mudah apabila anda memahami komponen terasnya dan bagaimana untuk mengkonfigurasi permintaan dan mengendalikan respons. Pengenalan Sebagai ciri standard dalam Java 11, HTTPClient menyediakan cara moden, fasih, dan tidak segerak untuk melakukan operasi HTTP, menggantikan pendekatan yang lebih lama seperti HttpURLConnection .

Inilah cara menggunakannya dengan berkesan:

Membuat dan Mengkonfigurasi HttpClient

HttpClient bertanggungjawab untuk menghantar permintaan dan menguruskan sambungan. Anda boleh membuatnya menggunakan kaedah newHttpClient() untuk tetapan lalai atau menyesuaikannya dengan HttpClient.Builder .

 HttpClient client = httpclient.newhttpClient (); // pelanggan lalai

Untuk lebih banyak kawalan, seperti menetapkan masa tamat atau konfigurasi proksi:

 Httpclient client = httpclient.newBuilder ()
    .ConnectTimeout (duration.ofseconds (10))
    .proxy (proxySelector.of (baru inetocketAddress ("proxy.example.com", 8080)))
    .build ();

Pelanggan ini boleh digunakan semula merentasi pelbagai permintaan, jadi ia adalah cekap untuk menciptanya sekali dan menggunakannya sepanjang aplikasi anda.

Menghantar permintaan segerak dan tidak segerak

Kelas HttpRequest mewakili permintaan HTTP. Anda membinanya menggunakan HttpRequest.newBuilder() , menyatakan URL, kaedah, tajuk, dan badan jika diperlukan.

Permintaan segerak (menyekat)

Gunakan send() untuk menyekat sehingga respons diterima:

 Permintaan httprequest = httprequest.newbuilder ()
    .uri (uri.create ("https://httpbin.org/get"))
    .Timeout (duration.ofseconds (30))
    .Get ()
    .build ();

Httpresponse <string> response = client.send (permintaan,
    Httpresponse.bodyhandlers.ofstring ());

System.out.println ("Status:" Response.StatusCode ());
System.out.println ("Body:" response.body ());
  • The BodyHandlers.ofString() memberitahu pelanggan bagaimana memproses badan tindak balas.
  • Sambutan termasuk status, tajuk, dan badan.

Permintaan Asynchronous (tidak menyekat)

Gunakan sendAsync() untuk mengelakkan menyekat benang semasa:

 client.sendasync (permintaan, httpresponse.bodyhandlers.ofstring ())
    .theNapply (httpresponse :: body)
    .ThenAccept (System.out :: Println)
    .join (); // tunggu siap (pilihan dalam aliran async)

Ini mengembalikan CompletableFuture , yang membolehkan anda untuk mengikat panggilan balik untuk mengendalikan kejayaan atau kegagalan.

Mengendalikan jenis dan data permintaan yang berbeza

Anda boleh menghantar pelbagai jenis permintaan dengan tajuk, bentuk data, atau JSON.

  • Hantarkan dengan badan JSON:
 String json = "{\" name \ ": \" John \ ", \" Age \ ": 30}";
Permintaan httprequest = httprequest.newbuilder ()
    .uri (uri.create ("https://httpbin.org/post"))
    .header ("Kandungan-jenis", "Aplikasi/JSON")
    .Post (httprequest.bodyPublishers.ofstring (JSON))
    .build ();
  • Data borang hantar:
 Rentetan rentetan = "nama pengguna = John & kata laluan = rahsia";
Permintaan httprequest = httprequest.newbuilder ()
    .uri (uri.create ("https://httpbin.org/post"))
    .header ("Kandungan-Jenis", "Aplikasi/X-Www-Form-Urlencoded")
    .Post (httprequest.bodypublishers.ofstring (form))
    .build ();
  • Letakkan, padam, dll:

Hanya ganti .POST(...) dengan .PUT(...) , .DELETE() , dll.

Pengandaran badan dan jenis tindak balas biasa

BodyHandler menentukan bagaimana badan tindak balas diproses:

  • BodyHandlers.ofString() -Untuk respons teks (charset lalai adalah UTF-8)
  • BodyHandlers.ofFile(Path.of("file.txt")) - menjimatkan tindak balas terus ke fail
  • BodyHandlers.ofByteArray() - Untuk data binari
  • BodyHandlers.fromLineSubscriber(…) -untuk pemprosesan line-by-line streaming

Anda juga boleh membuat pengendali badan tersuai untuk kes penggunaan lanjutan.

Pengendalian ralat dan tamat tempoh

Sentiasa menetapkan masa tamat dan mengendalikan pengecualian:

 Cuba {
    Httpresponse <string> response = client.send (permintaan,
        Httpresponse.bodyhandlers.ofstring ());

    jika (response.statusCode () == 404) {
        System.out.println ("Sumber tidak dijumpai");
    } else if (response.statusCode ()> = 400) {
        System.out.println ("Ralat HTTP:" Response.StatusCode ());
    }
} menangkap (ioException e) {
    System.err.println ("Ralat Rangkaian:" E.GetMessage ());
} tangkapan (InterruptedException e) {
    Thread.currentthread (). Interrupt ();
    System.err.println ("Permintaan terganggu");
}

Untuk panggilan async, gunakan .exceptionally() untuk mengendalikan kesilapan dalam rantaian CompletableFuture .


Pada asasnya, API HTTPClient memudahkan komunikasi HTTP di Java dengan reka bentuk yang bersih dan fleksibel. Sama ada anda memerlukan aliran kerja async yang kompleks dengan JSON, ia mengendalikan kebanyakan senario dengan baik. Ingatlah untuk menggunakan semula pelanggan, menetapkan masa tamat, dan mengendalikan kesilapan dengan sewajarnya.

Atas ialah kandungan terperinci Cara Menggunakan API HttpClient di 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial PHP
1522
276
Betulkan: Ethernet 'Rangkaian Tidak Dikenal' Betulkan: Ethernet 'Rangkaian Tidak Dikenal' Aug 12, 2025 pm 01:53 PM

Restartyourrouterandcomputertoresolvetemporaryglitches.2.RuntheNetworkTroubleshooterviathesystemtraytoautomaticallyfixcommonissues.3.RenewtheIPaddressusingCommandPromptasadministratorbyrunningipconfig/release,ipconfig/renew,netshwinsockreset,andnetsh

Cara Menggunakan API HttpClient di Java Cara Menggunakan API HttpClient di Java Aug 12, 2025 pm 02:27 PM

Inti menggunakan javahttpclientapi adalah untuk membuat httpclient, membina httprequest, dan memproses httpresponse. 1. Gunakan httpclient.newhttpClient () atau httpclient.newbuilder () untuk mengkonfigurasi waktu, proksi, dan lain -lain untuk membuat pelanggan; 2. Gunakan httprequest.newbuilder () untuk menetapkan uri, kaedah, header dan badan untuk membina permintaan; 3. Hantar permintaan segerak melalui klien. 4. Gunakan bodyhandlers.ofstr

Apakah senarai LinkedL di Java? Apakah senarai LinkedL di Java? Aug 12, 2025 pm 12:14 PM

LinkedList adalah senarai berkaitan dua hala di Java, senarai pelaksanaan dan antara muka Deque. Ia sesuai untuk senario di mana unsur -unsur sering dimasukkan dan dipadam. Terutamanya apabila beroperasi di kedua -dua hujung senarai, ia mempunyai kecekapan yang tinggi, tetapi prestasi akses rawak adalah kurang dan kerumitan masa adalah O (n). Penyisipan dan padam boleh mencapai O (1) di lokasi yang diketahui. Oleh itu, ia sesuai untuk melaksanakan susunan, beratur, atau situasi di mana struktur perlu diubahsuai secara dinamik, dan tidak sesuai untuk operasi intensif bacaan yang sering diakses oleh indeks. Kesimpulan terakhir ialah LinkedList lebih baik daripada ArrayList apabila ia sering diubah suai tetapi mempunyai akses yang lebih sedikit.

Cari Excel dan ganti tidak berfungsi Cari Excel dan ganti tidak berfungsi Aug 13, 2025 pm 04:49 PM

ChecksearchSettingslike "MatchentireCellContents" dan "MatchCase" byExpandingOptionsInfindandReplace, memastikan "lookin" issettovaluesand "dalam" tocorrectscope; 2.lookforhiddencharactersorformattingbycopytextdirectly

IDE terbaik untuk pembangunan java: ulasan perbandingan IDE terbaik untuk pembangunan java: ulasan perbandingan Aug 12, 2025 pm 02:55 PM

ThebestJavaIDEin2024dependsonyourneeds:1.ChooseIntelliJIDEAforprofessional,enterprise,orfull-stackdevelopmentduetoitssuperiorcodeintelligence,frameworkintegration,andtooling.2.UseEclipseforhighextensibility,legacyprojects,orwhenopen-sourcecustomizati

Cara membandingkan rentetan di Java Cara membandingkan rentetan di Java Aug 12, 2025 am 10:00 AM

Gunakan .equals () untuk membandingkan kandungan rentetan, kerana == hanya membandingkan rujukan objek dan bukannya aksara sebenar; 2. Gunakan .equalsignorecase () apabila membandingkan mengabaikan kes; 3. Gunakan .CompareTo () apabila menyusun mengikut abjad, dan .compareToignorecase () apabila mengabaikan kes; 4. Elakkan memanggil rentetan yang mungkin batal. Sama () hendaklah digunakan untuk menggunakan "literal" .equals (variable) atau objects.equals (str1, str2) untuk selamat mengendalikan nilai null; Pendek kata, selalu perhatikan perbandingan kandungan dan bukannya rujukan,

kelebihan tidak menjimatkan sejarah kelebihan tidak menjimatkan sejarah Aug 12, 2025 pm 05:20 PM

First,checkif"Clearbrowsingdataonclose"isturnedoninSettingsandturnitofftoensurehistoryissaved.2.Confirmyou'renotusingInPrivatemode,asitdoesnotsavehistorybydesign.3.Disableextensionstemporarilytoruleoutinterferencefromprivacyorad-blockingtoo

Cara Menggunakan Aplikasi Java Cara Menggunakan Aplikasi Java Aug 17, 2025 am 12:56 AM

PreparyourapplicationByusingMavenorgradletobuildajarorwarfile, externalizingConfiguration.2.Chooseadeploymentenvironment: runonbaremetal/vmwithjava-jarandsystemd, deploywarontomcat, containerizeWithdoStloStLoThoStLoThoStLoThoStLoThoStLoUsToStLoUsToStLoUsToStLours.

See all articles