Skip to content

Commit 956d086

Browse files
committed
chore: Enforce HTTP 1.1
1 parent b8f0434 commit 956d086

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/main/java/dev/tomr/hcloud/http/HetznerCloudHttpClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,10 @@ public <T extends HetznerJsonObject> T sendHttpRequest(Class<T> clazz, String en
8888
}
8989

9090
private HttpRequest createHttpRequest(String uri, RequestVerb requestVerb, String apiKey, String body) {
91+
HttpClient.Version version = HttpClient.Version.HTTP_1_1;
9192
HttpRequest.Builder builder = HttpRequest.newBuilder()
9293
.uri(URI.create(uri))
94+
.version(version)
9395
.header("Authorization", format("Bearer %s", apiKey))
9496
.header("Content-Type", "application/json");
9597
builder = switch (requestVerb) {

src/test/java/dev/tomr/hcloud/component/http/HttpClientComponentTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package dev.tomr.hcloud.component.http;
22

3+
import com.fasterxml.jackson.core.JsonProcessingException;
34
import com.fasterxml.jackson.databind.ObjectMapper;
45
import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
56
import com.github.tomakehurst.wiremock.common.Notifier;
67
import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
78
import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
89
import com.github.tomakehurst.wiremock.junit5.WireMockTest;
10+
import dev.tomr.hcloud.HetznerCloud;
911
import dev.tomr.hcloud.http.HetznerCloudHttpClient;
1012
import dev.tomr.hcloud.http.RequestVerb;
1113
import dev.tomr.hcloud.http.exception.HetznerApiException;
@@ -14,12 +16,15 @@
1416
import org.junit.jupiter.api.extension.RegisterExtension;
1517
import org.junit.jupiter.params.ParameterizedTest;
1618
import org.junit.jupiter.params.provider.ValueSource;
19+
import org.mockito.MockedStatic;
1720

1821
import java.io.IOException;
22+
import java.util.List;
1923

2024
import static com.github.tomakehurst.wiremock.client.WireMock.*;
2125
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
2226
import static org.junit.jupiter.api.Assertions.*;
27+
import static org.mockito.Mockito.*;
2328

2429
public class HttpClientComponentTest {
2530

@@ -116,7 +121,7 @@ void testHttpClientThrowsHetznerApiExceptionWhenBadJsonResponse() {
116121

117122
@Test
118123
@DisplayName("HTTP Client handles 204 no content correctly")
119-
void httpClientHandles204NoContent() throws IOException, InterruptedException, IllegalAccessException {
124+
void httpClientHandles204NoContent() {
120125
// this test is needed because 204 does not support handling a body
121126
// todo refactor how we handle HTTP Status codes we **know** will never supply a body, i.e. 204 - this implementation leaves a lot to be desired
122127
wireMockExtension.stubFor(get("/test").willReturn(aResponse().withStatus(204)));

0 commit comments

Comments
 (0)