Skip to content

Commit 9a7506c

Browse files
authored
only add content-type header if there is body content (#268)
1 parent 99ecbcd commit 9a7506c

1 file changed

Lines changed: 20 additions & 21 deletions

File tree

cwms-http-client/src/main/java/mil/army/usace/hec/cwms/http/client/HttpRequestBuilderImpl.java

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* MIT License
33
*
4-
* Copyright (c) 2024 Hydrologic Engineering Center
4+
* Copyright (c) 2025 Hydrologic Engineering Center
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -24,6 +24,20 @@
2424

2525
package mil.army.usace.hec.cwms.http.client;
2626

27+
import static java.util.stream.Collectors.toSet;
28+
29+
import java.io.IOException;
30+
import java.net.ConnectException;
31+
import java.net.HttpURLConnection;
32+
import java.net.SocketTimeoutException;
33+
import java.net.UnknownHostException;
34+
import java.security.SignatureException;
35+
import java.util.HashMap;
36+
import java.util.Map;
37+
import java.util.Objects;
38+
import java.util.Properties;
39+
import java.util.Set;
40+
import javax.net.ssl.SSLHandshakeException;
2741
import mil.army.usace.hec.cwms.http.client.request.HttpPatchRequest;
2842
import mil.army.usace.hec.cwms.http.client.request.HttpPostRequest;
2943
import mil.army.usace.hec.cwms.http.client.request.HttpPutRequest;
@@ -42,21 +56,6 @@
4256
import usace.metrics.services.Metrics;
4357
import usace.metrics.services.Timer;
4458

45-
import javax.net.ssl.SSLHandshakeException;
46-
import java.io.IOException;
47-
import java.net.ConnectException;
48-
import java.net.HttpURLConnection;
49-
import java.net.SocketTimeoutException;
50-
import java.net.UnknownHostException;
51-
import java.security.SignatureException;
52-
import java.util.HashMap;
53-
import java.util.Map;
54-
import java.util.Objects;
55-
import java.util.Properties;
56-
import java.util.Set;
57-
58-
import static java.util.stream.Collectors.toSet;
59-
6059
public class HttpRequestBuilderImpl implements HttpRequestBuilder {
6160

6261
private final String endpoint;
@@ -153,18 +152,18 @@ Request createRequest() throws IOException {
153152
.addPathSegments(endpoint)
154153
.build();
155154
}
156-
MediaType type = MediaType.parse(mediaType);
157-
if (type == null) {
158-
throw new IOException("Invalid Media Type: " + mediaType);
159-
}
160155
HttpUrl.Builder urlBuilder = resolve.newBuilder();
161156
queryParameters.forEach(urlBuilder::addQueryParameter);
162157
Request.Builder requestBuilder = new Request.Builder();
163158
RequestBody requestBody = null;
164159
if (body != null) {
165160
requestBody = RequestBody.create(body, null);
161+
MediaType type = MediaType.parse(mediaType);
162+
if (type == null) {
163+
throw new IOException("Invalid Media Type: " + mediaType);
164+
}
165+
requestBuilder.header("Content-Type", type.toString());
166166
}
167-
requestBuilder.header("Content-Type", type.toString());
168167
requestBuilder.url(urlBuilder.build());
169168
requestBuilder.method(method.getName(), requestBody);
170169
queryHeaders.forEach(requestBuilder::addHeader);

0 commit comments

Comments
 (0)