春季最高

通过参考资料,开始使用Spring 5和Spring Boot 2学习的春天课程:

> >学习春天
休息前

通过参考资料,开始使用Spring 5和Spring Boot 2学习的春天课程:

>>查看课程
Java最高

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>查看课程

1.介绍

在本教程中,我们将探索几个用于将HTTP响应体作为Java字符串读取的库。从第一个版本开始,Java提供了HttpURLConnectionAPI。这只包括基本的功能,并且以不太友好而闻名。

随着JDK 11的发布,Java引入了新的和改进的HttpClient处理HTTP通信的API。我们将介绍这些库,并检查一些替代方案,例如Apache HttpClient春休息模板

2.HttpClient

我们以前提到过,HttpClient被添加到Java 11.它允许我们访问网络上的资源。但是,不像HttpURLConnectionHttpClient支持HTTP/1.1和HTTP/2.此外,它提供同步和异步请求类型

HttpClient提供现代API,具有很多灵活性和强大功能。主要是,此API由三个核心类组成:HttpClientHttpRequest, 和HttpResponse

HttpResponse控件的结果HttpRequest调用。HttpResponse并不是直接创造出来的,而是在身体被完全接收后才会出现的。

将响应体读取为字符串,我们首先需要创建简单的客户端和请求对象:

HttpClient client = HttpClient. newhttpclient ();HttpRequest request = HttpRequest. newbuilder () .uri(URI.create(DUMMY_URL)) .build();

然后,我们只是使用Bodyhandlers.并调用方法ofString ()返回响应:

HttpResponse response = client。发送(请求,HttpResponse.BodyHandlers.ofString ());

3.HttpURLConnection

HttpURLConnection轻量级HTTP客户端是否用于通过HTTP或HTTPS协议访问资源,并允许我们创建InputStream.一旦我们获得InputStream,我们可以像正常的本地文件一样读取。

在Java中,我们可以用于访问互联网的主要类是java.net.url.类和java.net.HttpURLConnection类。首先,我们将使用URL类指向一个web资源。然后,我们可以使用HttpURLConnection类。

获取响应体URL作为一个字符串,我们应该首先创建一个HttpURLConnection使用我们的URL

HttpURLConnection connection = (HttpURLConnection) new URL(DUMMY_URL).openConnection();

新的URL (DUMMY_URL) .openConnection ()返回一个HttpURLConnection.此对象允许我们添加标题或检查响应代码。

接下来,让我们得到InputStream连接目的:

connection.getInputStream();

最后,我们需要转换InputStream到A.字符串

4. Apache.HttpClient

在本节中,我们将看到如何使用ApacheHttpClient读取HTTP响应体作为字符串。

要使用此库,我们需要将其依赖添加到我们的Maven项目:

<依赖> < groupId >表示。httpcomponents httpclient 4.5.12 

我们可以控件检索并发送数据CloseableHttpClient.要使用默认配置创建它的实例,我们可以使用HttpClients.createDefault ()

CloseableHttpClient提供了一个执行方法发送和接收数据。此方法使用类型参数HttpUriRequest,它有许多子类,包括HttpGetHttpPost

让我们首先创建一个HttpGet对象

HttpGet request = new HttpGet(DUMMY_URL);

第二,让我们创建客户端

Closeablehttpclient client = httpclient.createdefault();

第三,我们检索响应对象从此的结果执行方法:

CloseableHttpResponse response = client.execute(request);

最后,通过返回响应体将响应实体转换为字符串

HttpEntity entity = response.getEntity();String result = EntityUtils.toString(实体);

5.春天创建RestTemplate

在本节中,我们将看到如何使用春天创建RestTemplate读取HTTP响应体作为字符串。

创建RestTemplateClass是Spring提供的必备工具提供用于制作客户端HTTP操作的简单模板基于底层HTTP客户端库,比如JDKHttpURLConnection, ApacheHttpClient等等。

创建RestTemplate提供了一些有用的方法用于创建HTTP请求和处理响应。

我们可以先在Maven项目中添加一些依赖项来使用这个库:

<依赖> < groupId > org.springframework。启动< / groupId > < artifactId > spring-boot-starter-web < / artifactId > <版本> $ {spring-boot。  <依赖> org.springframework。启动< / groupId > < artifactId > spring-boot-starter-test < / artifactId > <版本> $ {spring-boot。测试版本}<版本> / <范围> < /范围> < / >的依赖

要发出一个web请求并以字符串形式返回响应体,让我们首先创建一个实例创建RestTemplate

RestTemplate RestTemplate = new RestTemplate();

二,我们通过调用该方法获取响应对象getforopject(),传入URL和所需的响应类型——我们将使用string.class.在我们的示例:

String response = restTemplate。getForObject (DUMMY_URL String.class);

6.结论

在本文中,我们已经看到了如何使用几个库来读取HTTP响应身体作为一个字符串

与往常一样,完整的代码是可用的在GitHub

春天底

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

> >这门课程
休息下

开始使用Spring 5和Spring Boot 2,通过学习的春天课程 :

>>查看课程
Java底部

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>查看课程
2注释
最古老的
最新的
内联反馈
查看所有评论
对这篇文章的评论关闭!