Apache HttpClient - Http获取请求

GET方法用于使用给定的URI从给定服务器检索信息.使用GET的请求应该只检索数据,并且不应对数据产生其他影响.

HttpClient API提供了一个名为 HttpGet 的类,它表示get请求方法.

按照以下步骤使用HttpClient库发送获取请求

步骤1  - 创建HttpClient对象

HttpClients 类的 createDefault()方法返回 CloseableHttpClient 对象,该对象是 HttpClient

使用此方法,创建一个HttpClient对象,如下所示 :

CloseableHttpClient httpclient = HttpClients.createDefault();

第2步 - 创建HttpGet对象

HttpGet 类表示HTTPGET请求它使用URI检索给定服务器的信息.

通过实例化此类来创建HTTP GET请求.该类的构造函数接受
a表示URI的字符串值.

HttpGet httpget = new HttpGet("http://www.IT屋.com/");

步骤3  - 执行获取请求

执行()方法 CloseableHttpClient 类接受HttpUriRequest
(接口)对象(即HttpGet,HttpPost,HttpPut,HttpHead等)并返回响应
对象.

使用此方法执行请求,如下所示 :

HttpResponse httpresponse = httpclient.execute(httpget);

示例

以下是演示使用HttpClient库执行HTTP GET请求的示例.

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.IT屋.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://img01.yuandaxia.cn/Content/img/tutorials/apache_httpclient/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>