Apache HttpClient - Menutup Koneksi

Jika Anda memproses tanggapan HTTP secara manual alih-alih menggunakan penangan tanggapan, Anda harus menutup semua sambungan http sendiri. Bab ini menjelaskan cara menutup koneksi secara manual.

Saat menutup koneksi HTTP secara manual ikuti langkah-langkah yang diberikan di bawah ini -

Langkah 1 - Buat objek HttpClient

Itu createDefault() metode dari HttpClients kelas mengembalikan objek kelas CloseableHttpClient, yang merupakan implementasi dasar dari antarmuka HttpClient.

Menggunakan metode ini, buat file HttpClient objek seperti yang ditunjukkan di bawah ini -

CloseableHttpClient httpClient = HttpClients.createDefault();

Langkah 2 - Mulai blok coba-akhirnya

Mulai blok coba-akhirnya, tulis kode yang tersisa di program di blok percobaan dan tutup objek CloseableHttpClient di blok akhirnya.

CloseableHttpClient httpClient = HttpClients.createDefault();
try{
   //Remaining code . . . . . . . . . . . . . . .
}finally{
   httpClient.close();
}

Langkah 3 - Buat HttpGetobject

Itu HttpGet class mewakili permintaan HTTP GET yang mengambil informasi dari server yang diberikan menggunakan URI.

Buat permintaan HTTP GET dengan membuat instance kelas HttpGet dengan meneruskan string yang mewakili URI.

HttpGet httpGet = new HttpGet("http://www.tutorialspoint.com/");

Langkah 4 - Jalankan permintaan Dapatkan

Itu execute() metode dari CloseableHttpClient objek menerima a HttpUriRequest (antarmuka) objek (yaitu HttpGet, HttpPost, HttpPut, HttpHead dll.) dan mengembalikan objek respons.

Jalankan permintaan menggunakan metode yang diberikan -

HttpResponse httpResponse = httpclient.execute(httpGet);

Langkah 5 - Mulai coba lagi (bersarang) - akhirnya

Mulai blok coba-akhirnya lagi (bersarang di dalam percobaan-akhirnya), tulis kode yang tersisa di program di blok percobaan ini dan tutup objek HttpResponse di blok akhirnya.

CloseableHttpClient httpclient = HttpClients.createDefault();
try{
   . . . . . . .
   . . . . . . .
   CloseableHttpResponse httpresponse = httpclient.execute(httpget);
   try{
      . . . . . . .
      . . . . . . .
   }finally{
      httpresponse.close();
   }
}finally{
   httpclient.close();
}

Contoh

Setiap kali Anda membuat / mendapatkan objek seperti request, response stream, dll., Mulai coba blok terakhir di baris berikutnya, tulis kode yang tersisa dalam percobaan dan tutup objek terkait di blok terakhir seperti yang ditunjukkan dalam program berikut -

import java.util.Scanner;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class CloseConnectionExample {
   
   public static void main(String args[])throws Exception{
 
      //Create an HttpClient object
      CloseableHttpClient httpclient = HttpClients.createDefault();

      try{
         //Create an HttpGet object
         HttpGet httpget = new HttpGet("http://www.tutorialspoint.com/");

         //Execute the Get request
         CloseableHttpResponse httpresponse = httpclient.execute(httpget);

         try{
            Scanner sc = new Scanner(httpresponse.getEntity().getContent());
            while(sc.hasNext()) {
               System.out.println(sc.nextLine());
            }
         }finally{
            httpresponse.close();
         }
      }finally{
         httpclient.close();
      }
   }
}

Keluaran

Saat menjalankan program di atas, output berikut dihasilkan -

<!DOCTYPE html>
<!--[if IE 8]><html class = "ie ie8"> <![endif]-->
<!--[if IE 9]><html class = "ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html lang = "en-US"> <!--<![endif]-->
<head>
<!-- Basic -->
<meta charset = "utf-8">
<meta http-equiv = "X-UA-Compatible" content = "IE = edge">
<meta name = "viewport" content = "width = device-width,initial-scale = 1.0,userscalable = yes">
<link href = "https://cdn.muicss.com/mui-0.9.39/extra/mui-rem.min.css"
rel = "stylesheet" type = "text/css" />
<link rel = "stylesheet" href = "/questions/css/home.css?v = 3" />
<script src = "/questions/js/jquery.min.js"></script>
<script src = "/questions/js/fontawesome.js"></script>
<script src = "https://cdn.muicss.com/mui-0.9.39/js/mui.min.js"></script>
</head>
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-232293-17');
</script>
</body>
</html>