Skip to content

Commit 2eda11e

Browse files
committed
feat: add CharSequence overloads for putHeader methods in HttpRequest
1 parent 139e274 commit 2eda11e

File tree

3 files changed

+50
-3
lines changed

3 files changed

+50
-3
lines changed

vertx-web-client/src/main/java/io/vertx/ext/web/client/HttpRequest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import io.vertx.uritemplate.Variables;
3333
import io.vertx.uritemplate.UriTemplate;
3434

35+
import java.util.ArrayList;
3536
import java.util.List;
3637
import java.util.Map;
3738

@@ -182,6 +183,21 @@ public interface HttpRequest<T> {
182183
@Fluent
183184
HttpRequest<T> putHeader(String name, String value);
184185

186+
/**
187+
* Configure the request to set a new HTTP header using CharSequence.
188+
* <p>
189+
* This is an overload of {@link #putHeader(String, String)} that accepts CharSequence parameters.
190+
*
191+
* @param name the header name
192+
* @param value the header value
193+
* @return a reference to this, so the API can be used fluently
194+
*/
195+
@Fluent
196+
@GenIgnore(GenIgnore.PERMITTED_TYPE)
197+
default HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
198+
return putHeader(name.toString(), value.toString());
199+
}
200+
185201
/**
186202
* Configure the request to set a new HTTP header with multiple values.
187203
*
@@ -193,6 +209,25 @@ public interface HttpRequest<T> {
193209
@GenIgnore(GenIgnore.PERMITTED_TYPE)
194210
HttpRequest<T> putHeader(String name, Iterable<String> value);
195211

212+
/**
213+
* Configure the request to set a new HTTP header with multiple values using CharSequence.
214+
* <p>
215+
* This is an overload of {@link #putHeader(String, Iterable)} that accepts CharSequence parameters.
216+
*
217+
* @param name the header name
218+
* @param value the header value
219+
* @return a reference to this, so the API can be used fluently
220+
*/
221+
@Fluent
222+
@GenIgnore(GenIgnore.PERMITTED_TYPE)
223+
default HttpRequest<T> putHeader(CharSequence name, Iterable<CharSequence> value) {
224+
List<String> values = new ArrayList<>();
225+
for (CharSequence cs : value) {
226+
values.add(cs.toString());
227+
}
228+
return putHeader(name.toString(), values);
229+
}
230+
196231
/**
197232
* @return The HTTP headers
198233
*/

vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpRequestImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,24 @@ public HttpRequest<T> putHeader(String name, String value) {
231231
return this;
232232
}
233233

234+
@Override
235+
public HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
236+
headers().set(name, value);
237+
return this;
238+
}
239+
234240
@Override
235241
public HttpRequest<T> putHeader(String name, Iterable<String> value) {
236242
headers().set(name, value);
237243
return this;
238244
}
239245

246+
@Override
247+
public HttpRequest<T> putHeader(CharSequence name, Iterable<CharSequence> value) {
248+
headers().set(name, value);
249+
return this;
250+
}
251+
240252
@Override
241253
public MultiMap headers() {
242254
if (headers == null) {

vertx-web-client/src/test/java/io/vertx/ext/web/client/tests/WebClientTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,7 +1255,7 @@ public void testFormUrlEncodedMultipleHeaders() throws Exception {
12551255
startServer();
12561256
MultiMap form = MultiMap.caseInsensitiveMultiMap();
12571257
HttpRequest<Buffer> builder = webClient.post("/somepath");
1258-
builder.putHeader("bla", Arrays.asList("1", "2"));
1258+
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
12591259
builder.sendForm(form).onComplete(onSuccess(resp -> complete()));
12601260
await();
12611261
}
@@ -1485,7 +1485,7 @@ public void testMultipartFormMultipleHeaders() throws Exception {
14851485
startServer();
14861486
HttpRequest<Buffer> builder = webClient.post("somepath");
14871487
MultipartForm form = MultipartForm.create();
1488-
builder.putHeader("bla", Arrays.asList("1", "2"));
1488+
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
14891489
builder.sendMultipartForm(form).onComplete(onSuccess(resp -> complete()));
14901490
await();
14911491
}
@@ -2161,7 +2161,7 @@ public void testMultipleHeaders() throws Exception {
21612161
testRequest(
21622162
client -> client
21632163
.get("somepath")
2164-
.putHeader("bla", Arrays.asList("1", "2")),
2164+
.putHeader((CharSequence) "bla", Arrays.asList("1", "2")),
21652165
req -> assertEquals(Arrays.asList("1", "2"), req.headers().getAll("bla")));
21662166
}
21672167

0 commit comments

Comments
 (0)