Apache HttpClient - Yêu cầu Đăng Http

Yêu cầu POST được sử dụng để gửi dữ liệu đến máy chủ; ví dụ: thông tin khách hàng, tải lên tệp, v.v., sử dụng các biểu mẫu HTML.

API HttpClient cung cấp một lớp có tên HttpPost đại diện cho yêu cầu ĐĂNG.

Làm theo các bước dưới đây để gửi yêu cầu HTTP POST bằng thư viện HttpClient.

Bước 1 - Tạo một đối tượng HttpClient

Các createDefault() phương pháp của HttpClients lớp trả về một đối tượng của lớp CloseableHttpClient, đó là triển khai cơ bản của HttpClient giao diện.

Sử dụng phương pháp này, tạo một đối tượng HttpClient.

CloseableHttpClient httpClient = HttpClients.createDefault();

Bước 2 - Tạo đối tượng HttpPost

Các HttpPost lớp đại diện cho HTTP POSTyêu cầu. Thao tác này sẽ gửi dữ liệu cần thiết và truy xuất thông tin của máy chủ đã cho bằng cách sử dụng URI.

Tạo yêu cầu này bằng cách khởi tạo HttpPost và chuyển một giá trị chuỗi đại diện cho URI, như một tham số cho hàm tạo của nó.

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

Bước 3 - Thực hiện Yêu cầu Nhận

Các execute() phương thức của đối tượng ClosableHttpClient chấp nhận một đối tượng HttpUriRequest (giao diện) (tức là HttpGet, HttpPost, HttpPut, HttpHead, v.v.) và trả về một đối tượng phản hồi.

HttpResponse httpResponse = httpclient.execute(httpget);

Thí dụ

Dưới đây là một ví dụ minh họa việc thực thi yêu cầu HTTP POST bằng thư viện HttpClient.

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

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

      //Creating a HttpGet object
      HttpPost httppost = new HttpPost("https://www.tutorialspoint.com/");

      //Printing the method used
      System.out.println("Request Type: "+httppost.getMethod());

      //Executing the Get request
      HttpResponse httpresponse = httpclient.execute(httppost);

      Scanner sc = new Scanner(httpresponse.getEntity().getContent());

      //Printing the status line
      System.out.println(httpresponse.getStatusLine());
      while(sc.hasNext()) {
         System.out.println(sc.nextLine());
      }
   }
}

Đầu ra

Chương trình trên tạo ra kết quả sau.

Request Type: POST
<!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" conten t= "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>