This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 5dac8dd  RestClient API improvements.
5dac8dd is described below

commit 5dac8dd0b972224997796d9557708660009b5f1c
Author: JamesBognar <[email protected]>
AuthorDate: Wed Jun 9 10:09:16 2021 -0400

    RestClient API improvements.
---
 .../juneau/rest/client/RestClientBuilder.java      |  67 ++++------
 .../org/apache/juneau/rest/client/RestRequest.java | 146 +++++++++++----------
 .../juneau/rest/mock/MockRestClientBuilder.java    |   4 +-
 .../org/apache/juneau/rest/RestOp_Params_Test.java |  16 ++-
 .../rest/client/RestClient_Headers_Test.java       |  27 ++--
 5 files changed, 124 insertions(+), 136 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index a3cbfa0..1dd1867 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -157,10 +157,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#xml()} to provide support for multiple languages.
         *      <ul>
@@ -204,10 +204,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/json+simple"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#xml()} to provide support for multiple languages.
         *      <ul>
@@ -247,10 +247,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to <js>"text/xml"</js> 
unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/xml"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -293,10 +293,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -339,10 +339,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -385,10 +385,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html+stripped"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html+stripped"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -432,10 +432,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/plain"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/plain"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -478,10 +478,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"octal/msgpack"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"octal/msgpack"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -525,10 +525,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to <js>"text/uon"</js> 
unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/uon"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -570,10 +570,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/x-www-form-urlencoded"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/x-www-form-urlencoded"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -619,10 +619,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/openapi"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/openapi"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#json()} to provide support for multiple languages.
         *      <ul>
@@ -662,10 +662,10 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *      </ul>
         * <p>
         *      <c>Accept</c> request header must be set by {@link 
#header(String,Object)} or {@link #accept(String)}, or per-request
-        *              via {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)} in order for the correct parser to be selected.
+        *              via {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)} in order for the correct parser to be selected.
         * <p>
         *      <c>Content-Type</c> request header must be set by {@link 
#header(String,Object)} or {@link #contentType(String)},
-        *              or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)} 
in order for the correct serializer to be selected.
+        *              or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)} 
in order for the correct serializer to be selected.
         * <p>
         *      Similar to calling 
<c>json().simpleJson().html().xml().uon().urlEnc().openApi().msgPack().plainText()</c>.
         *
@@ -1549,21 +1549,6 @@ public class RestClientBuilder extends 
BeanContextBuilder {
        }
 
        /**
-        * Sets the value for the <c>Date</c> request header on all requests.
-        *
-        * <p>
-        * This is equivalent to calling <code>header(<js>"Date"</js>, 
<jv>value</jv>);</code>
-        * or <code>header(Date.<jsm>of</jsm>(<jv>value</jv>));</code>
-        *
-        * @param value The new header value.
-        * @return This object (for method chaining).
-        */
-       @FluentSetter
-       public RestClientBuilder date(Date value) {
-               return header(value);
-       }
-
-       /**
         * Sets the value for the <c>Debug</c> request header on all requests.
         *
         * <p>
@@ -1665,7 +1650,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         * @return This object (for method chaining).
         */
        @FluentSetter
-       public RestClientBuilder ifModifiedSince(String value) {
+       public RestClientBuilder ifModifiedSince(ZonedDateTime value) {
                return header(IfModifiedSince.of(value));
        }
 
@@ -1710,7 +1695,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         * @return This object (for method chaining).
         */
        @FluentSetter
-       public RestClientBuilder ifUnmodifiedSince(String value) {
+       public RestClientBuilder ifUnmodifiedSince(ZonedDateTime value) {
                return header(IfUnmodifiedSince.of(value));
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index c38902a..0e50964 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -24,6 +24,7 @@ import java.io.*;
 import java.lang.reflect.*;
 import java.net.*;
 import java.text.*;
+import java.time.*;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.function.*;
@@ -43,6 +44,7 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.html.*;
 import org.apache.juneau.http.HttpHeaders;
 import org.apache.juneau.http.header.*;
+import org.apache.juneau.http.header.Date;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.http.resource.*;
 import org.apache.juneau.httppart.*;
@@ -150,10 +152,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(JsonSerializer.<jk>class</jk>).parser(JsonParser.<jk>class</jk>)</c>.
         *
@@ -184,10 +186,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/json"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#accept(Object)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#accept(String)}, or per-request via {@link RestRequest#header(String,Object)} 
or {@link RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/json+simple"</js> unless overridden
-        *              by {@link #header(String,Object)} or {@link 
#contentType(Object)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(Object)}.
+        *              by {@link #header(String,Object)} or {@link 
#contentType(String)}, or per-request via {@link 
RestRequest#header(String,Object)} or {@link RestRequest#contentType(String)}.
         * <p>
         *      Can be combined with other marshaller setters such as {@link 
#xml()} to provide support for multiple languages.
         *      <ul>
@@ -226,10 +228,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to <js>"text/xml"</js> 
unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/xml"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(XmlSerializer.<jk>class</jk>).parser(XmlParser.<jk>class</jk>)</c>.
         *
@@ -265,10 +267,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(HtmlSerializer.<jk>class</jk>).parser(HtmlParser.<jk>class</jk>)</c>.
         *
@@ -304,10 +306,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(HtmlDocSerializer.<jk>class</jk>).parser(HtmlParser.<jk>class</jk>)</c>.
         *
@@ -343,10 +345,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/html+stripped"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/html+stripped"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(HtmlStrippedDocSerializer.<jk>class</jk>).parser(HtmlParser.<jk>class</jk>)</c>.
         *
@@ -383,10 +385,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/plain"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/plain"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(PlainTextSerializer.<jk>class</jk>).parser(PlainTextParser.<jk>class</jk>)</c>.
         *
@@ -422,10 +424,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"octal/msgpack"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"octal/msgpack"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(MsgPackSerializer.<jk>class</jk>).parser(MsgPackParser.<jk>class</jk>)</c>.
         *
@@ -462,10 +464,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to <js>"text/uon"</js> 
unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/uon"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(UonSerializer.<jk>class</jk>).parser(UonParser.<jk>class</jk>)</c>.
         *
@@ -500,10 +502,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"application/x-www-form-urlencoded"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"application/x-www-form-urlencoded"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(UrlEncodingSerializer.<jk>class</jk>).parser(UrlEncodingParser.<jk>class</jk>)</c>.
         *
@@ -542,10 +544,10 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *      </ul>
         * <p>
         *      <c>Accept</c> request header will be set to 
<js>"text/openapi"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#accept(String)}.
         * <p>
         *      <c>Content-Type</c> request header will be set to 
<js>"text/openapi"</js> unless overridden
-        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(Object)}.
+        *              by {@link RestRequest#header(String,Object)} or {@link 
RestRequest#contentType(String)}.
         * <p>
         *      Identical to calling 
<c>serializer(OpenApiSerializer.<jk>class</jk>).parser(OpenApiParser.<jk>class</jk>)</c>.
         *
@@ -2426,8 +2428,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest accept(Object value) throws RestCallException {
-               return header("Accept", value);
+       public RestRequest accept(String value) throws RestCallException {
+               return header(Accept.of(value));
        }
 
        /**
@@ -2440,8 +2442,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest acceptCharset(Object value) throws RestCallException 
{
-               return header("Accept-Charset", value);
+       public RestRequest acceptCharset(String value) throws RestCallException 
{
+               return header(AcceptCharset.of(value));
        }
 
        /**
@@ -2454,8 +2456,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest acceptEncoding(Object value) throws 
RestCallException {
-               return header("Accept-Encoding", value);
+       public RestRequest acceptEncoding(String value) throws 
RestCallException {
+               return header(AcceptEncoding.of(value));
        }
 
        /**
@@ -2468,8 +2470,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest acceptLanguage(Object value) throws 
RestCallException {
-               return header("Accept-Language", value);
+       public RestRequest acceptLanguage(String value) throws 
RestCallException {
+               return header(AcceptLanguage.of(value));
        }
 
        /**
@@ -2482,8 +2484,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest authorization(Object value) throws RestCallException 
{
-               return header("Authorization", value);
+       public RestRequest authorization(String value) throws RestCallException 
{
+               return header(Authorization.of(value));
        }
 
        /**
@@ -2496,8 +2498,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest cacheControl(Object value) throws RestCallException {
-               return header("Cache-Control", value);
+       public RestRequest cacheControl(String value) throws RestCallException {
+               return header(CacheControl.of(value));
        }
 
        /**
@@ -2510,8 +2512,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest connection(Object value) throws RestCallException {
-               return header("Connection", value);
+       public RestRequest connection(String value) throws RestCallException {
+               return header(Connection.of(value));
        }
 
        /**
@@ -2524,8 +2526,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest contentLength(Object value) throws RestCallException 
{
-               return header("Content-Length", value);
+       public RestRequest contentLength(Long value) throws RestCallException {
+               return header(ContentLength.of(value));
        }
 
        /**
@@ -2539,8 +2541,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest contentType(Object value) throws RestCallException {
-               return header("Content-Type", value);
+       public RestRequest contentType(String value) throws RestCallException {
+               return header(ContentType.of(value));
        }
 
        /**
@@ -2550,8 +2552,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest mediaType(Object value) throws RestCallException {
-               return header("Accept", value).header("Content-Type", value);
+       public RestRequest mediaType(String value) throws RestCallException {
+               return header(Accept.of(value)).header(ContentType.of(value));
        }
 
        /**
@@ -2564,8 +2566,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest contentEncoding(Object value) throws 
RestCallException {
-               return header("Content-Encoding", value);
+       public RestRequest contentEncoding(String value) throws 
RestCallException {
+               return header(ContentEncoding.of(value));
        }
 
        /**
@@ -2578,8 +2580,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest date(Object value) throws RestCallException {
-               return header("Date", value);
+       public RestRequest date(ZonedDateTime value) throws RestCallException {
+               return header(Date.of(value));
        }
 
        /**
@@ -2592,8 +2594,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest expect(Object value) throws RestCallException {
-               return header("Expect", value);
+       public RestRequest expect(String value) throws RestCallException {
+               return header(Expect.of(value));
        }
 
        /**
@@ -2606,8 +2608,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest forwarded(Object value) throws RestCallException {
-               return header("Forwarded", value);
+       public RestRequest forwarded(String value) throws RestCallException {
+               return header(Forwarded.of(value));
        }
 
        /**
@@ -2620,8 +2622,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest from(Object value) throws RestCallException {
-               return header("From", value);
+       public RestRequest from(String value) throws RestCallException {
+               return header(From.of(value));
        }
 
        /**
@@ -2634,8 +2636,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest hostHeader(Object value) throws RestCallException {
-               return header("Host", value);
+       public RestRequest hostHeader(String value) throws RestCallException {
+               return header(Host.of(value));
        }
 
        /**
@@ -2648,8 +2650,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest ifMatch(Object value) throws RestCallException {
-               return header("If-Match", value);
+       public RestRequest ifMatch(String value) throws RestCallException {
+               return header(IfMatch.of(value));
        }
 
        /**
@@ -2662,8 +2664,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest ifModifiedSince(Object value) throws 
RestCallException {
-               return header("If-Modified-Since", value);
+       public RestRequest ifModifiedSince(ZonedDateTime value) throws 
RestCallException {
+               return header(IfModifiedSince.of(value));
        }
 
        /**
@@ -2676,8 +2678,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest ifNoneMatch(Object value) throws RestCallException {
-               return header("If-None-Match", value);
+       public RestRequest ifNoneMatch(String value) throws RestCallException {
+               return header(IfNoneMatch.of(value));
        }
 
        /**
@@ -2690,8 +2692,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest ifRange(Object value) throws RestCallException {
-               return header("If-Range", value);
+       public RestRequest ifRange(String value) throws RestCallException {
+               return header(IfRange.of(value));
        }
 
        /**
@@ -2704,8 +2706,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest ifUnmodifiedSince(Object value) throws 
RestCallException {
-               return header("If-Unmodified-Since", value);
+       public RestRequest ifUnmodifiedSince(ZonedDateTime value) throws 
RestCallException {
+               return header(IfUnmodifiedSince.of(value));
        }
 
        /**
@@ -2718,8 +2720,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest maxForwards(Object value) throws RestCallException {
-               return header("Max-Forwards", value);
+       public RestRequest maxForwards(Integer value) throws RestCallException {
+               return header(MaxForwards.of(value));
        }
 
        /**
@@ -2734,7 +2736,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @throws RestCallException Invalid input.
         */
        public RestRequest noTrace() throws RestCallException {
-               return header("No-Trace", true);
+               return header(NoTrace.TRUE);
        }
 
        /**
@@ -2747,8 +2749,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest origin(Object value) throws RestCallException {
-               return header("Origin", value);
+       public RestRequest origin(String value) throws RestCallException {
+               return header(Origin.of(value));
        }
 
        /**
@@ -2761,8 +2763,8 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest pragma(Object value) throws RestCallException {
-               return header("Pragma", value);
+       public RestRequest pragma(String value) throws RestCallException {
+               return header(Pragma.of(value));
        }
 
        /**
@@ -2775,7 +2777,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         * @return This object (for method chaining).
         * @throws RestCallException Invalid input.
         */
-       public RestRequest proxyAuthorization(Object value) throws 
RestCallException {
+       public RestRequest proxyAuthorization(String value) throws 
RestCallException {
                return header("Proxy-Authorization", value);
        }
 
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
index 4493513..30b73d5 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
@@ -1106,7 +1106,7 @@ public class MockRestClientBuilder extends 
RestClientBuilder {
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClientBuilder ifModifiedSince(String value) {
+       public MockRestClientBuilder ifModifiedSince(ZonedDateTime value) {
                super.ifModifiedSince(value);
                return this;
        }
@@ -1124,7 +1124,7 @@ public class MockRestClientBuilder extends 
RestClientBuilder {
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClientBuilder ifUnmodifiedSince(String value) {
+       public MockRestClientBuilder ifUnmodifiedSince(ZonedDateTime value) {
                super.ifUnmodifiedSince(value);
                return this;
        }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
index ce7d9b4..21e57de 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
@@ -17,6 +17,7 @@ import static org.apache.juneau.internal.IOUtils.*;
 import static org.junit.runners.MethodSorters.*;
 
 import java.io.*;
+import java.time.*;
 import java.util.*;
 
 import javax.servlet.*;
@@ -293,6 +294,7 @@ public class RestOp_Params_Test {
        @Test
        public void b01_headers() throws Exception {
                RestClient b = MockRestClient.build(B1.class);
+               ZonedDateTime zdt = ZonedDateTime.parse("2007-12-03T10:15:30Z");
 
                
b.get("/accept").accept("text/foo").run().assertBody().is("text/foo");
                
b.get("/accept").accept("text/foo+bar").run().assertBody().is("text/foo+bar");
@@ -315,12 +317,12 @@ public class RestOp_Params_Test {
                
b.get("/cacheControl?Cache-Control=foo").run().assertBody().is("foo");
                
b.get("/connection").connection("foo").run().assertBody().is("foo");
                
b.get("/connection?Connection=foo").run().assertBody().is("foo");
-               
b.get("/contentLength").contentLength(0).run().assertBody().is("0");
+               
b.get("/contentLength").contentLength(0l).run().assertBody().is("0");
                
b.get("/contentLength?Content-Length=0").run().assertBody().is("0");
                
b.get("/contentType").contentType("text/foo").run().assertBody().is("text/foo");
                
b.get("/contentType?Content-Type=text/foo").run().assertBody().is("text/foo");
-               b.get("/date").date("Wed, 21 Oct 2015 07:28:00 
GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
-               b.get("/date?Date=Wed, 21 Oct 2015 07:28:00 
GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
+               b.get("/date").date(zdt).run().assertBody().is("Mon, 3 Dec 2007 
10:15:30 GMT");
+               b.get("/date?Date=Mon, 3 Dec 2007 10:15:30 
GMT").run().assertBody().is("Mon, 3 Dec 2007 10:15:30 GMT");
                
b.get("/expect").expect("100-continue").run().assertBody().is("100-continue");
                
b.get("/expect?Expect=100-continue").run().assertBody().is("100-continue");
                b.get("/from").from("foo").run().assertBody().is("foo");
@@ -331,16 +333,16 @@ public class RestOp_Params_Test {
                
b.get("/ifMatch").ifMatch("W/\"foo\"").run().assertBody().is("W/\"foo\"");
                
b.get("/ifMatch").ifMatch("W/\"foo\",\"bar\"").run().assertBody().is("W/\"foo\",\"bar\"");
                
b.get("/ifMatch?If-Match=\"foo\"").run().assertBody().is("\"foo\"");
-               b.get("/ifModifiedSince").ifModifiedSince("Wed, 21 Oct 2015 
07:28:00 GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
-               b.get("/ifModifiedSince?If-Modified-Since=Wed, 21 Oct 2015 
07:28:00 GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
+               
b.get("/ifModifiedSince").ifModifiedSince(zdt).run().assertBody().is("Mon, 3 
Dec 2007 10:15:30 GMT");
+               b.get("/ifModifiedSince?If-Modified-Since=Mon, 3 Dec 2007 
10:15:30 GMT").run().assertBody().is("Mon, 3 Dec 2007 10:15:30 GMT");
                
b.get("/ifNoneMatch").ifNoneMatch("\"foo\"").run().assertBody().is("\"foo\"");
                
b.get("/ifNoneMatch").ifNoneMatch("W/\"foo\"").run().assertBody().is("W/\"foo\"");
                
b.get("/ifNoneMatch").ifNoneMatch("W/\"foo\",\"bar\"").run().assertBody().is("W/\"foo\",\"bar\"");
                
b.get("/ifNoneMatch?If-None-Match=\"foo\"").run().assertBody().is("\"foo\"");
                
b.get("/ifRange").ifRange("\"foo\"").run().assertBody().is("\"foo\"");
                
b.get("/ifRange?If-Range=\"foo\"").run().assertBody().is("\"foo\"");
-               b.get("/ifUnmodifiedSince").ifUnmodifiedSince("Wed, 21 Oct 2015 
07:28:00 GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
-               b.get("/ifUnmodifiedSince?If-Unmodified-Since=Wed, 21 Oct 2015 
07:28:00 GMT").run().assertBody().is("Wed, 21 Oct 2015 07:28:00 GMT");
+               
b.get("/ifUnmodifiedSince").ifUnmodifiedSince(zdt).run().assertBody().is("Mon, 
3 Dec 2007 10:15:30 GMT");
+               b.get("/ifUnmodifiedSince?If-Unmodified-Since=Mon, 3 Dec 2007 
10:15:30 GMT").run().assertBody().is("Mon, 3 Dec 2007 10:15:30 GMT");
                
b.get("/maxForwards").maxForwards(123).run().assertBody().is("123");
                
b.get("/maxForwards?Max-Forwards=123").run().assertBody().is("123");
                b.get("/pragma").pragma("foo").run().assertBody().is("foo");
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
index 742df2c..700476c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
@@ -27,7 +27,6 @@ import java.util.*;
 import org.apache.http.Header;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.header.*;
-import org.apache.juneau.http.header.Date;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.marshall.*;
@@ -66,8 +65,8 @@ public class RestClient_Headers_Test {
                }
        }
 
-       private static final ZonedDateTime ZONEDDATETIME = 
ZonedDateTime.from(RFC_1123_DATE_TIME.parse("Sat, 29 Oct 1994 19:43:31 
GMT")).truncatedTo(SECONDS);
-       private static final String PARSEDZONEDDATETIME = "Sat, 29 Oct 1994 
19:43:31 GMT";
+       private static final ZonedDateTime ZONEDDATETIME = 
ZonedDateTime.from(RFC_1123_DATE_TIME.parse("Mon, 3 Dec 2007 10:15:30 
GMT")).truncatedTo(SECONDS);
+       private static final String PARSEDZONEDDATETIME = "Mon, 3 Dec 2007 
10:15:30 GMT";
 
        
//------------------------------------------------------------------------------------------------------------------
        // Method tests
@@ -223,16 +222,16 @@ public class RestClient_Headers_Test {
                
checkClient("Content-Length").contentLength(123l).build().get("/headers").run().assertBody().is("['123']");
                
checkClient("Content-Type").contentType("foo").build().get("/headers").run().assertBody().is("['foo']");
                
checkClient("Content-Encoding").contentEncoding("identity").build().get("/headers").run().assertBody().is("['identity']");
-               checkClient("Date").date(Date.of("Sat, 29 Oct 1994 19:43:31 
GMT")).build().get("/headers").run().assertBody().is("['Sat, 29 Oct 1994 
19:43:31 GMT']");
+               
checkClient("Date").date(ZONEDDATETIME).build().get("/headers").run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
                
checkClient("Expect").expect("foo").build().get("/headers").run().assertBody().is("['foo']");
                
checkClient("Forwarded").forwarded("foo").build().get("/headers").run().assertBody().is("['foo']");
                
checkClient("From").from("foo").build().get("/headers").run().assertBody().is("['foo']");
                
checkClient("Host").host("foo").build().get("/headers").run().assertBody().is("['foo']");
                
checkClient("If-Match").ifMatch("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
-               checkClient("If-Modified-Since").ifModifiedSince("Sat, 29 Oct 
1994 19:43:31 GMT").build().get("/headers").run().assertBody().is("['Sat, 29 
Oct 1994 19:43:31 GMT']");
+               
checkClient("If-Modified-Since").ifModifiedSince(ZONEDDATETIME).build().get("/headers").run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
                
checkClient("If-None-Match").ifNoneMatch("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
                
checkClient("If-Range").ifRange("\"foo\"").build().get("/headers").run().assertBody().is("['\"foo\"']");
-               checkClient("If-Unmodified-Since").ifUnmodifiedSince("Sat, 29 
Oct 1994 19:43:31 GMT").build().get("/headers").run().assertBody().is("['Sat, 
29 Oct 1994 19:43:31 GMT']");
+               
checkClient("If-Unmodified-Since").ifUnmodifiedSince(ZONEDDATETIME).build().get("/headers").run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
                
checkClient("Max-Forwards").maxForwards(10).build().get("/headers").run().assertBody().is("['10']");
                
checkClient("No-Trace").noTrace().build().get("/headers").run().assertBody().is("['true']");
                
checkClient("Origin").origin("foo").build().get("/headers").run().assertBody().is("['foo']");
@@ -254,20 +253,20 @@ public class RestClient_Headers_Test {
                
checkClient("Cache-Control").build().get("/headers").cacheControl("none").run().assertBody().is("['none']");
                
checkClient("X-Client-Version").build().get("/headers").clientVersion("1").run().assertBody().is("['1']");
                
checkClient("Connection").build().get("/headers").connection("foo").run().assertBody().is("['foo']");
-               
checkClient("Content-Length").build().get("/headers").contentLength("123").run().assertBody().is("['123']");
+               
checkClient("Content-Length").build().get("/headers").contentLength(123l).run().assertBody().is("['123']");
                
checkClient("Content-Type").build().get("/headers").contentType("foo").run().assertBody().is("['foo']");
                
checkClient("Content-Encoding").build().get("/headers").contentEncoding("identity").run().assertBody().is("['identity']");
-               
checkClient("Date").build().get("/headers").date("123").run().assertBody().is("['123']");
+               
checkClient("Date").build().get("/headers").date(ZONEDDATETIME).run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
                
checkClient("Expect").build().get("/headers").expect("foo").run().assertBody().is("['foo']");
                
checkClient("Forwarded").build().get("/headers").forwarded("foo").run().assertBody().is("['foo']");
                
checkClient("From").build().get("/headers").from("foo").run().assertBody().is("['foo']");
                
checkClient("Host").build().get("/headers").hostHeader("foo").run().assertBody().is("['foo']");
-               
checkClient("If-Match").build().get("/headers").ifMatch("foo").run().assertBody().is("['foo']");
-               
checkClient("If-Modified-Since").build().get("/headers").ifModifiedSince("foo").run().assertBody().is("['foo']");
-               
checkClient("If-None-Match").build().get("/headers").ifNoneMatch("foo").run().assertBody().is("['foo']");
-               
checkClient("If-Range").build().get("/headers").ifRange("foo").run().assertBody().is("['foo']");
-               
checkClient("If-Unmodified-Since").build().get("/headers").ifUnmodifiedSince("foo").run().assertBody().is("['foo']");
-               
checkClient("Max-Forwards").build().get("/headers").maxForwards("10").run().assertBody().is("['10']");
+               
checkClient("If-Match").build().get("/headers").ifMatch("\"foo\"").run().assertBody().is("['\"foo\"']");
+               
checkClient("If-Modified-Since").build().get("/headers").ifModifiedSince(ZONEDDATETIME).run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
+               
checkClient("If-None-Match").build().get("/headers").ifNoneMatch("\"foo\"").run().assertBody().is("['\"foo\"']");
+               
checkClient("If-Range").build().get("/headers").ifRange("\"foo\"").run().assertBody().is("['\"foo\"']");
+               
checkClient("If-Unmodified-Since").build().get("/headers").ifUnmodifiedSince(ZONEDDATETIME).run().assertBody().is("['"+PARSEDZONEDDATETIME+"']");
+               
checkClient("Max-Forwards").build().get("/headers").maxForwards(10).run().assertBody().is("['10']");
                
checkClient("No-Trace").build().get("/headers").noTrace().run().assertBody().is("['true']");
                
checkClient("Origin").build().get("/headers").origin("foo").run().assertBody().is("['foo']");
                
checkClient("Pragma").build().get("/headers").pragma("foo").run().assertBody().is("['foo']");

Reply via email to