diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCacheConformance.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCacheConformance.java index 87ef6857e3..37a368fbff 100644 --- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCacheConformance.java +++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCacheConformance.java @@ -29,6 +29,7 @@ import java.io.IOException; import java.time.Instant; +import org.apache.hc.client5.http.utils.DateUtils; import org.apache.hc.core5.annotation.Contract; import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.EntityDetails; @@ -71,7 +72,7 @@ public void process(final HttpResponse response, } } if (!response.containsHeader(HttpHeaders.DATE)) { - response.addHeader(new BasicHeader(HttpHeaders.DATE, Instant.now())); + response.addHeader(new BasicHeader(HttpHeaders.DATE, DateUtils.formatStandardDate(Instant.now()))); } } diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseCacheConformance.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseCacheConformance.java index df347b7b8a..1983376265 100644 --- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseCacheConformance.java +++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseCacheConformance.java @@ -31,9 +31,11 @@ import java.time.Instant; import org.apache.hc.client5.http.utils.DateUtils; +import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.HttpResponse; import org.apache.hc.core5.http.HttpStatus; import org.apache.hc.core5.http.support.BasicResponseBuilder; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -87,4 +89,14 @@ void shouldStripContentTypeFromOrigin304ResponseToStrongValidation() throws Exce "Content-Type", "text/html;charset=utf-8"); } + @Test + void shouldAddStandardDateHeaderIfMissing() throws Exception { + final HttpResponse response = BasicResponseBuilder.create(HttpStatus.SC_OK) + .build(); + assertFalse(response.containsHeader(HttpHeaders.DATE)); + impl.process(response, null, null); + Assertions.assertTrue(response.containsHeader(HttpHeaders.DATE)); + Assertions.assertNotNull(DateUtils.parseStandardDate(response, HttpHeaders.DATE)); + } + }