Apache Httpclient 简明教程

Apache HttpClient - Http Post Request

POST请求用于将数据发送到服务器;例如,使用HTML表单发送客户信息、文件上传等。

HttpClient API提供了一个名为 HttpPost 的类,它表示POST请求。

按照以下步骤,使用HttpClient库发送HTTP POST请求。

Step 1 - Create an HttpClient Object

HttpClients 类的 createDefault() 方法返回一个 CloseableHttpClient 类的对象,这是 HttpClient 接口的基本实现。

使用此方法创建一个HttpClient对象。

CloseableHttpClient httpClient = HttpClients.createDefault();

Step 2 - Create HttpPost Object

HttpPost 类表示 HTTP POST 请求。它发送所需的数据并使用URI检索给定服务器的信息。

通过实例化 HttpPost 类并传递一个表示URI的字符串值作为其构造函数的参数,来创建此请求。

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

Step 3 - Execute the Get Request

CloseableHttpClient对象的 execute() 方法接受一个HttpUriRequest(接口)对象(即HttpGet、HttpPost、HttpPut、HttpHead等),并返回一个响应对象。

HttpResponse httpResponse = httpclient.execute(httpget);

Example

以下是演示如何使用HttpClient库执行HTTP POST请求的示例。

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());
      }
   }
}

Output

上述程序产生以下输出。

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>