Merge pull request #9916 from oussama-benmahmoud/BAEL-4443-reading-http-response-body-string
BAEL-4443 Reading HTTP ResponseBody as a String
This commit is contained in:
commit
214710beb8
|
@ -4,6 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>httpclient-2</artifactId>
|
<artifactId>httpclient-2</artifactId>
|
||||||
<version>0.1-SNAPSHOT</version>
|
<version>0.1-SNAPSHOT</version>
|
||||||
|
<name>httpclient-2</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.baeldung</groupId>
|
<groupId>com.baeldung</groupId>
|
||||||
|
@ -13,6 +14,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- http client -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.httpcomponents</groupId>
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
<artifactId>httpclient</artifactId>
|
<artifactId>httpclient</artifactId>
|
||||||
|
@ -24,6 +26,19 @@
|
||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- rest template -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -34,10 +49,24 @@
|
||||||
<filtering>true</filtering>
|
<filtering>true</filtering>
|
||||||
</resource>
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${maven.compiler.source.version}</source>
|
||||||
|
<target>${maven.compiler.target.version}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<httpclient.version>4.5.8</httpclient.version>
|
<httpclient.version>4.5.8</httpclient.version>
|
||||||
|
<maven.compiler.source.version>11</maven.compiler.source.version>
|
||||||
|
<maven.compiler.target.version>11</maven.compiler.target.version>
|
||||||
|
<spring-boot.version>2.1.7.RELEASE</spring-boot.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.baeldung.httpclient.readresponsebodystring;
|
||||||
|
|
||||||
|
import org.apache.http.HttpEntity;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class ApacheHttpClientUnitTest {
|
||||||
|
public static final String DUMMY_URL = "https://postman-echo.com/get";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUseApacheHttpClient_thenCorrect() throws IOException {
|
||||||
|
HttpGet request = new HttpGet(DUMMY_URL);
|
||||||
|
|
||||||
|
try (CloseableHttpClient client = HttpClients.createDefault(); CloseableHttpResponse response = client.execute(request)) {
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
String result = EntityUtils.toString(entity);
|
||||||
|
System.out.println("Response -> " + result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.baeldung.httpclient.readresponsebodystring;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
|
||||||
|
public class HttpClientUnitTest {
|
||||||
|
public static final String DUMMY_URL = "https://postman-echo.com/get";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUseHttpClient_thenCorrect() throws IOException, InterruptedException {
|
||||||
|
HttpClient client = HttpClient.newHttpClient();
|
||||||
|
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(DUMMY_URL)).build();
|
||||||
|
|
||||||
|
// synchronous response
|
||||||
|
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||||
|
System.out.println(response.body());
|
||||||
|
|
||||||
|
// asynchronous response
|
||||||
|
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
|
||||||
|
.thenApply(HttpResponse::body)
|
||||||
|
.thenAccept(System.out::println)
|
||||||
|
.join();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.baeldung.httpclient.readresponsebodystring;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
public class HttpUrlConnectionUnitTest {
|
||||||
|
|
||||||
|
public static final String DUMMY_URL = "https://postman-echo.com/get";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUseHttpUrlConnection_thenCorrect() throws IOException {
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) new URL(DUMMY_URL).openConnection();
|
||||||
|
|
||||||
|
InputStream inputStream = connection.getInputStream();
|
||||||
|
|
||||||
|
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
String currentLine;
|
||||||
|
|
||||||
|
while ((currentLine = in.readLine()) != null)
|
||||||
|
response.append(currentLine);
|
||||||
|
|
||||||
|
in.close();
|
||||||
|
Assert.assertNotNull(response.toString());
|
||||||
|
System.out.println("Response -> " + response.toString());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.baeldung.httpclient.readresponsebodystring;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
public class SpringRestTemplateUnitTest {
|
||||||
|
|
||||||
|
public static final String DUMMY_URL = "https://postman-echo.com/get";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUseRestTemplate_thenCorrect() {
|
||||||
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
|
String response = restTemplate.getForObject(DUMMY_URL, String.class);
|
||||||
|
System.out.println(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
4
pom.xml
4
pom.xml
|
@ -424,7 +424,7 @@
|
||||||
<module>hazelcast</module>
|
<module>hazelcast</module>
|
||||||
<module>helidon</module>
|
<module>helidon</module>
|
||||||
<module>httpclient</module>
|
<module>httpclient</module>
|
||||||
<module>httpclient-2</module>
|
<!--<module>httpclient-2</module>--><!-- to be fixed in http://team.baeldung.com/browse/JAVA-2824 -->
|
||||||
<module>httpclient-simple</module>
|
<module>httpclient-simple</module>
|
||||||
<module>hystrix</module>
|
<module>hystrix</module>
|
||||||
|
|
||||||
|
@ -936,7 +936,7 @@
|
||||||
<module>hazelcast</module>
|
<module>hazelcast</module>
|
||||||
<module>helidon</module>
|
<module>helidon</module>
|
||||||
<module>httpclient</module>
|
<module>httpclient</module>
|
||||||
<module>httpclient-2</module>
|
<!--<module>httpclient-2</module>--><!-- to be fixed in http://team.baeldung.com/browse/JAVA-2824 -->
|
||||||
<module>httpclient-simple</module>
|
<module>httpclient-simple</module>
|
||||||
<module>hystrix</module>
|
<module>hystrix</module>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue