Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import io.vertx.uritemplate.Variables;
import io.vertx.uritemplate.UriTemplate;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -182,6 +183,21 @@ public interface HttpRequest<T> {
@Fluent
HttpRequest<T> putHeader(String name, String value);

/**
* Configure the request to set a new HTTP header using CharSequence.
* <p>
* This is an overload of {@link #putHeader(String, String)} that accepts CharSequence parameters.
*
* @param name the header name
* @param value the header value
* @return a reference to this, so the API can be used fluently
*/
@Fluent
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
return putHeader(name.toString(), value.toString());
}

/**
* Configure the request to set a new HTTP header with multiple values.
*
Expand All @@ -193,6 +209,25 @@ public interface HttpRequest<T> {
@GenIgnore(GenIgnore.PERMITTED_TYPE)
HttpRequest<T> putHeader(String name, Iterable<String> value);

/**
* Configure the request to set a new HTTP header with multiple values using CharSequence.
* <p>
* This is an overload of {@link #putHeader(String, Iterable)} that accepts CharSequence parameters.
*
* @param name the header name
* @param value the header value
* @return a reference to this, so the API can be used fluently
*/
@Fluent
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default HttpRequest<T> putHeader(CharSequence name, Iterable<CharSequence> value) {
List<String> values = new ArrayList<>();
for (CharSequence cs : value) {
values.add(cs.toString());
}
return putHeader(name.toString(), values);
}

/**
* @return The HTTP headers
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,24 @@ public HttpRequest<T> putHeader(String name, String value) {
return this;
}

@Override
public HttpRequest<T> putHeader(CharSequence name, CharSequence value) {
headers().set(name, value);
return this;
}

@Override
public HttpRequest<T> putHeader(String name, Iterable<String> value) {
headers().set(name, value);
return this;
}

@Override
public HttpRequest<T> putHeader(CharSequence name, Iterable<CharSequence> value) {
headers().set(name, value);
return this;
}

@Override
public MultiMap headers() {
if (headers == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1255,7 +1255,7 @@ public void testFormUrlEncodedMultipleHeaders() throws Exception {
startServer();
MultiMap form = MultiMap.caseInsensitiveMultiMap();
HttpRequest<Buffer> builder = webClient.post("/somepath");
builder.putHeader("bla", Arrays.asList("1", "2"));
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
builder.sendForm(form).onComplete(onSuccess(resp -> complete()));
await();
}
Expand Down Expand Up @@ -1485,7 +1485,7 @@ public void testMultipartFormMultipleHeaders() throws Exception {
startServer();
HttpRequest<Buffer> builder = webClient.post("somepath");
MultipartForm form = MultipartForm.create();
builder.putHeader("bla", Arrays.asList("1", "2"));
builder.putHeader((CharSequence) "bla", Arrays.asList("1", "2"));
builder.sendMultipartForm(form).onComplete(onSuccess(resp -> complete()));
await();
}
Expand Down Expand Up @@ -2161,7 +2161,7 @@ public void testMultipleHeaders() throws Exception {
testRequest(
client -> client
.get("somepath")
.putHeader("bla", Arrays.asList("1", "2")),
.putHeader((CharSequence) "bla", Arrays.asList("1", "2")),
req -> assertEquals(Arrays.asList("1", "2"), req.headers().getAll("bla")));
}

Expand Down
Loading