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>