[
https://issues.apache.org/jira/browse/HTTPCLIENT-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13100307#comment-13100307
]
Jon Moore commented on HTTPCLIENT-1124:
---------------------------------------
@Oleg: I think this is a case where the RFC2119 language matters. Sec 4.3 says
a client MUST NOT send a body if the definition of the method "does not allow
it." There are two ways to interpret "does not allow", which is either that the
method definition says you "MUST NOT send a body with this request" or that the
method definition omits saying you "MAY send a body with this request." The
definition for GET in Section 9.3 does not contain either one of these
statements. I will note that the definitions of POST and PUT do not use the
RFC2119 language to say the request MAY contain a body. This suggests the
protocol authors may have had the former interpretation in mind (and indeed,
Roy's cited comment supports this interpretation). Since a receiver can safely
ignore bodies on GETs, there is no interoperability issue, and in general, if
you observe the working group mailing list, you can see that they shy away from
MUST/MUST NOT if it doesn't affect interoperability.
@Alexey: It sounds to me like you actually want to report a bug against the
authors of Dispatch, because they are not providing a fully general API; if you
view Dispatch as a form of proxy, then they are not following the advice of
Section 4.3: "A server SHOULD read and forward a message-body on any request".
The HttpClient library provides a way to implement that currently--in fact, I
had to face the same issue when writing the httpclient-cache module. So I
really think this is not a *bug* in HttpClient, as there is a way to achieve
what you want, which is issuing a DELETE with a body. [As an editorial note, I
find it interesting that you think insulting the volunteer maintainers of an
open source project will help your case].
That said, I would be supportive of an *improvement* aimed at simplifying the
API (namely, removing the distinction between entity-enclosing and
non-entity-enclosing requests) going forward. But, of course, only if we can
get agreement that there's no interoperability problem here. :)
> Can't send request body with HTTP methods other than POST and PUT
> -----------------------------------------------------------------
>
> Key: HTTPCLIENT-1124
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1124
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 4.1.2
> Reporter: Alexey Levan
> Priority: Minor
>
> I'd like to have a possibility to send an HttpEntity regardless of method of
> request. The HTTP spec doesn't prohibit that (AFAIK, even GET requests with
> body are allowed), and any spec-compliant implementation shouldn't do it
> either. I suggest merging HttpEntityEnclosingRequestBase with
> HttpRequestBase, since there's really no reason to make this artifical
> restriction.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]