Skip to content

Commit f9c8f48

Browse files
committed
Updated dependencies, fixed issue in readAll when response stream is null, incremented version
1 parent 7cf4098 commit f9c8f48

File tree

4 files changed

+43
-29
lines changed

4 files changed

+43
-29
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ You can find the current docs on our [website](https://docs.javawebstack.org/fra
2222
<dependency>
2323
<groupId>org.javawebstack</groupId>
2424
<artifactId>http-client</artifactId>
25-
<version>1.0.0</version>
25+
<version>1.0.1</version>
2626
</dependency>
2727
```

pom.xml

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,18 @@
5050
<dependency>
5151
<groupId>org.javawebstack</groupId>
5252
<artifactId>abstract-data</artifactId>
53-
<version>1.0.0</version>
53+
<version>1.0.4</version>
5454
</dependency>
5555
<dependency>
5656
<groupId>org.junit.jupiter</groupId>
5757
<artifactId>junit-jupiter-engine</artifactId>
58-
<version>5.8.2</version>
58+
<version>5.9.0</version>
5959
<scope>test</scope>
6060
</dependency>
6161
<dependency>
62-
<groupId>org.apache.httpcomponents</groupId>
63-
<artifactId>httpclient</artifactId>
64-
<version>4.5.13</version>
62+
<groupId>org.apache.httpcomponents.client5</groupId>
63+
<artifactId>httpclient5</artifactId>
64+
<version>5.1.3</version>
6565
<optional>true</optional>
6666
</dependency>
6767
</dependencies>

src/main/java/org/javawebstack/httpclient/HTTPRequest.java

+2
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,8 @@ private String buildUrl() {
259259
}
260260

261261
private static byte[] readAll(InputStream is) throws IOException {
262+
if(is == null)
263+
return new byte[0];
262264
ByteArrayOutputStream baos = new ByteArrayOutputStream();
263265
byte[] data = new byte[1024];
264266
int r = 0;

src/main/java/org/javawebstack/httpclient/implementation/ApacheHTTPRequestImplementation.java

+35-23
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
package org.javawebstack.httpclient.implementation;
22

3-
import org.apache.http.Header;
4-
import org.apache.http.HttpEntity;
5-
import org.apache.http.HttpResponse;
6-
import org.apache.http.client.HttpClient;
7-
import org.apache.http.client.config.RequestConfig;
8-
import org.apache.http.client.methods.RequestBuilder;
9-
import org.apache.http.conn.ssl.NoopHostnameVerifier;
10-
import org.apache.http.conn.ssl.TrustAllStrategy;
11-
import org.apache.http.entity.ByteArrayEntity;
12-
import org.apache.http.entity.ContentType;
13-
import org.apache.http.impl.client.HttpClientBuilder;
14-
import org.apache.http.ssl.SSLContextBuilder;
15-
3+
import org.apache.hc.client5.http.classic.HttpClient;
4+
import org.apache.hc.client5.http.config.RequestConfig;
5+
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
6+
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
7+
import org.apache.hc.client5.http.io.HttpClientConnectionManager;
8+
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
9+
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
10+
import org.apache.hc.client5.http.ssl.TrustAllStrategy;
11+
import org.apache.hc.core5.http.*;
12+
import org.apache.hc.core5.http.io.entity.ByteArrayEntity;
13+
import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
14+
import org.apache.hc.core5.ssl.SSLContextBuilder;
15+
16+
import javax.net.ssl.SSLContext;
17+
import java.io.ByteArrayInputStream;
1618
import java.io.IOException;
1719
import java.io.InputStream;
1820
import java.security.KeyManagementException;
1921
import java.security.KeyStoreException;
2022
import java.security.NoSuchAlgorithmException;
2123
import java.util.*;
24+
import java.util.concurrent.TimeUnit;
2225

2326
public class ApacheHTTPRequestImplementation implements IHTTPRequestImplementation {
2427

@@ -76,6 +79,8 @@ public Map<String, String[]> getResponseHeaders() {
7679
}
7780

7881
public InputStream getResponseStream() {
82+
if(responseEntity == null)
83+
return new ByteArrayInputStream(new byte[0]);
7984
try {
8085
return responseEntity.getContent();
8186
} catch (IOException ignored) {
@@ -86,22 +91,28 @@ public InputStream getResponseStream() {
8691
public int execute() {
8792
try {
8893
RequestConfig config = RequestConfig.custom()
89-
.setConnectTimeout(timeout)
90-
.setConnectionRequestTimeout(timeout)
94+
.setConnectTimeout(timeout, TimeUnit.MILLISECONDS)
95+
.setConnectionRequestTimeout(timeout, TimeUnit.MILLISECONDS)
9196
.setRedirectsEnabled(followRedirects)
9297
.build();
9398
HttpClientBuilder clientBuilder = HttpClientBuilder.create()
9499
.setDefaultRequestConfig(config);
95100

96101
if(!sslVerification) {
97-
clientBuilder
98-
.setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build())
99-
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
102+
SSLContext context = new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build();
103+
HttpClientConnectionManager cm = PoolingHttpClientConnectionManagerBuilder.create()
104+
.setSSLSocketFactory(SSLConnectionSocketFactoryBuilder.create()
105+
.setSslContext(context)
106+
.setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
107+
.build()
108+
)
109+
.build();
110+
clientBuilder.setConnectionManager(cm);
100111
}
101112

102113
HttpClient client = clientBuilder.build();
103114

104-
RequestBuilder builder = RequestBuilder.create(method);
115+
ClassicRequestBuilder builder = ClassicRequestBuilder.create(method);
105116
builder.setUri(url);
106117
requestHeaders.forEach((k, values) -> {
107118
for(String v : values)
@@ -113,12 +124,13 @@ public int execute() {
113124
builder.setEntity(new ByteArrayEntity(requestBody, ContentType.create(contentType)));
114125
}
115126

116-
HttpResponse response = client.execute(builder.build());
127+
ClassicHttpResponse response = client.execute(builder.build(), res -> res);
128+
responseEntity = response.getEntity();
117129

118-
status = response.getStatusLine().getStatusCode();
119-
statusMessage = response.getStatusLine().getReasonPhrase();
130+
status = response.getCode();
131+
statusMessage = response.getReasonPhrase();
120132
Map<String, List<String>> resHeaders = new HashMap<>();
121-
for(Header h : response.getAllHeaders())
133+
for(Header h : response.getHeaders())
122134
resHeaders.computeIfAbsent(h.getName().toLowerCase(Locale.ROOT), n -> new ArrayList<>()).add(h.getValue());
123135
resHeaders.forEach((k, v) -> responseHeaders.put(k, v.toArray(new String[0])));
124136

0 commit comments

Comments
 (0)