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']");