Skip to content

Commit 489b205

Browse files
committed
Add default headers.
1 parent 582e58e commit 489b205

File tree

6 files changed

+31
-5
lines changed

6 files changed

+31
-5
lines changed

src/main/java/jodd/http/HttpBase.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ public static class Defaults {
8181
* Default body encoding (UTF-8).
8282
*/
8383
public static String bodyEncoding = "UTF-8";
84+
/**
85+
* Default headers.
86+
*/
87+
public static HeadersMultiMap headers = new HeadersMultiMap() {{
88+
addHeader(HEADER_USER_AGENT, "Jodd HTTP");
89+
}};
8490
/**
8591
* Flag that controls if headers should be rewritten and capitalized in PascalCase.
8692
* When disabled, header keys are used as they are passed.
@@ -178,6 +184,14 @@ public void headerRemove(final String name) {
178184
headers.remove(name.trim());
179185
}
180186

187+
/**
188+
* Clears all headers.
189+
*/
190+
public T headersClear() {
191+
this.headers.clear();
192+
return _this();
193+
}
194+
181195
/**
182196
* Adds header parameter. If a header with the same name exist,
183197
* it will not be overwritten, but the new header with the same

src/main/java/jodd/http/HttpRequest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,16 @@ public HttpRequest() {
6969
* Prepares request on creation. Does the following:
7070
* <ul>
7171
* <li>adds "Connection: Close" header.</li>
72+
* <li>adds default headers</li>
7273
* </ul>
7374
*/
7475
protected void initRequest() {
7576
connectionKeepAlive(false);
77+
if (Defaults.headers.size() > 0) {
78+
for (Map.Entry<String, String> entry : Defaults.headers) {
79+
this.headers.add(entry.getKey(), entry.getValue());
80+
}
81+
}
7682
}
7783

7884
// ---------------------------------------------------------------- properties

src/test/java/jodd/http/HttpBrowserOfflineTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void testDefaultParameters() {
4141

4242
httpBrowser.addDefaultHeaders(request);
4343

44-
assertEquals(3, request.headerNames().size());
44+
assertEquals(4, request.headerNames().size());
4545
assertEquals("123", request.header("aaa"));
4646
assertEquals("987", request.header("bbb"));
4747
}
@@ -56,7 +56,7 @@ void testDefaultParametersOverwrite() {
5656

5757
httpBrowser.addDefaultHeaders(request);
5858

59-
assertEquals(2, request.headerNames().size());
59+
assertEquals(3, request.headerNames().size());
6060
assertEquals("987", request.header("aaa"));
6161
}
6262
}

src/test/java/jodd/http/HttpConnectionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public void transferred(final int len) {
145145
echoTestServer.stop();
146146
file.delete();
147147

148-
assertEquals(":0:512:1024:146", StringUtil.substring(sb.toString(), 0, -1));
148+
assertEquals(":0:512:1024:148", StringUtil.substring(sb.toString(), 0, -1));
149149
}
150150

151151
}

src/test/java/jodd/http/HttpRequestTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ void testSet() {
198198
@Test
199199
void testInOutForm() {
200200
final HttpRequest request = HttpRequest.get("http://jodd.org/?id=173");
201+
request.headersClear();
201202
request.header("User-Agent", "Scaly");
202203
request.form("one", "funny");
203204

@@ -250,6 +251,7 @@ void testNegativeContentLength() {
250251
void testFileUpload() throws IOException {
251252
final HttpRequest request = HttpRequest.get("http://jodd.org/?id=173");
252253

254+
request.headersClear();
253255
request.header("User-Agent", "Scaly").form("one", "funny");
254256

255257
final File tempFile = FileUtil.createTempFile();
@@ -355,7 +357,7 @@ void testCapitalizeHeaders() {
355357
request.header("key-test2", "value3");
356358
assertTrue(request.toString(false).contains("Key-Test2: value2, value3"), "Header key should have been modified");
357359
assertEquals(2, request.headers("KEY-TEST2").size());
358-
assertEquals(1 + 2, request.headerNames().size()); // 2 default and 2 added
360+
assertEquals(2 + 2, request.headerNames().size()); // 2 default and 2 added
359361

360362
request.headerRemove("key-test2");
361363
assertFalse(request.headers.contains("key-test2"));
@@ -375,7 +377,7 @@ void testCapitalizeHeaders() {
375377
request.header("key-test1", "value4");
376378
assertTrue(request.toString(false).contains("key-test1: VALUE1, value4"), "Header key should not have been modified");
377379
assertEquals(2, request.headers("KEY-TEST1").size());
378-
assertEquals(1 + 2, request.headerNames().size()); // 2 default and 2 added
380+
assertEquals(2 + 2, request.headerNames().size()); // 2 default and 2 added
379381

380382
request.headerRemove("key-test1");
381383
assertFalse(request.headers.contains("key-test1"));

src/test/java/jodd/http/RemoveHeaderTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ void testRemoveHeader() {
2626

2727
@Test
2828
void testRemoveHeaderUserAgent() throws IOException {
29+
HttpBase.Defaults.headers.remove("User-Agent");
30+
2931
HttpRequest request = HttpRequest
3032
.get("https://example.com")
3133
.header("x-dummy-header", "remove me");
@@ -41,5 +43,7 @@ void testRemoveHeaderUserAgent() throws IOException {
4143
String out = baos.toString();
4244

4345
assertFalse(out.contains("User-Agent"));
46+
47+
HttpBase.Defaults.headers.addHeader("User-Agent", "Jodd HTTP");
4448
}
4549
}

0 commit comments

Comments
 (0)