Apache HttpClient - รับคำขอ Http
เมธอด GET ใช้เพื่อดึงข้อมูลจากเซิร์ฟเวอร์ที่กำหนดโดยใช้ URI ที่กำหนด คำขอโดยใช้ GET ควรดึงข้อมูลเท่านั้นและไม่ควรมีผลกระทบอื่นใดกับข้อมูล
HttpClient API จัดเตรียมคลาสที่มีชื่อว่า HttpGet ซึ่งแสดงถึงวิธีรับคำขอ
ทำตามขั้นตอนด้านล่างเพื่อส่งคำขอรับโดยใช้ไลบรารี HttpClient
ขั้นตอนที่ 1 - สร้างวัตถุ HttpClient
createDefault() วิธีการของ HttpClients คลาสส่งคืน a CloseableHttpClient ซึ่งเป็นการใช้งานพื้นฐานของไฟล์ HttpClient อินเตอร์เฟซ.
ใช้วิธีนี้สร้างวัตถุ HttpClient ดังที่แสดงด้านล่าง -
CloseableHttpClient httpclient = HttpClients.createDefault();
ขั้นตอนที่ 2 - สร้างวัตถุ HttpGet
HttpGet คลาสแทนคำขอ HTTPGET ซึ่งดึงข้อมูลของเซิร์ฟเวอร์ที่กำหนดโดยใช้ URI
สร้างคำร้องขอ HTTP GET โดยสร้างอินสแตนซ์คลาสนี้ คอนสตรัคเตอร์ของคลาสนี้ยอมรับค่าสตริงที่แสดงถึง URI
HttpGet httpget = new HttpGet("http://www.tutorialspoint.com/");
ขั้นตอนที่ 3 - ดำเนินการรับคำขอ
execute() วิธีการของ CloseableHttpClient คลาสยอมรับอ็อบเจ็กต์ HttpUriRequest (อินเตอร์เฟส) (เช่น HttpGet, HttpPost, HttpPut, HttpHead เป็นต้น) และส่งคืนอ็อบเจ็กต์ตอบกลับ
ดำเนินการตามคำขอโดยใช้วิธีนี้ดังที่แสดงด้านล่าง -
HttpResponse httpresponse = httpclient.execute(httpget);
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็นถึงการดำเนินการตามคำขอ HTTP GET โดยใช้ไลบรารี HttpClient
import java.util.Scanner;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class HttpGetExample {
public static void main(String args[]) throws Exception{
//Creating a HttpClient object
CloseableHttpClient httpclient = HttpClients.createDefault();
//Creating a HttpGet object
HttpGet httpget = new HttpGet("https://www.tutorialspoint.com/ ");
//Printing the method used
System.out.println("Request Type: "+httpget.getMethod());
//Executing the Get request
HttpResponse httpresponse = httpclient.execute(httpget);
Scanner sc = new Scanner(httpresponse.getEntity().getContent());
//Printing the status line
System.out.println(httpresponse.getStatusLine());
while(sc.hasNext()) {
System.out.println(sc.nextLine());
}
}
}
เอาต์พุต
โปรแกรมข้างต้นสร้างผลลัพธ์ต่อไปนี้ -
Request Type: GET
<!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">
<title>Parallax Scrolling, Java Cryptography, YAML, Python Data Science, Java
i18n, GitLab, TestRail, VersionOne, DBUtils, Common CLI, Seaborn, Ansible,
LOLCODE, Current Affairs 2018, Apache Commons Collections</title>
<meta name = "Description" content = "Parallax Scrolling, Java Cryptography, YAML,
Python Data Science, Java i18n, GitLab, TestRail, VersionOne, DBUtils, Common
CLI, Seaborn, Ansible, LOLCODE, Current Affairs 2018, Intellij Idea, Apache
Commons Collections, Java 9, GSON, TestLink, Inter Process Communication (IPC),
Logo, PySpark, Google Tag Manager, Free IFSC Code, SAP Workflow"/>
<meta name = "Keywords" content = "Python Data Science, Java i18n, GitLab,
TestRail, VersionOne, DBUtils, Common CLI, Seaborn, Ansible, LOLCODE, Gson,
TestLink, Inter Process Communication (IPC), Logo"/>
<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>
</body>
</html>