[
https://issues.apache.org/jira/browse/CAMEL-25745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-25745:
-----------------------------------
Assignee: Claus Ibsen
> camel-http - make it stand out that a message with a body is sent as a POST
> unless httpMethod is set
> ----------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25745
> URL: https://issues.apache.org/jira/browse/CAMEL-25745
> Project: Camel
> Issue Type: Improvement
> Components: camel-http
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.24.0
>
>
> The http producer picks the HTTP method from the message body when neither
> the {{httpMethod}} option nor the {{CamelHttpMethod}} header sets it: a
> message with a body is sent as a POST, and a message without a body as a GET.
> After {{unmarshal}}, {{split}} or {{setBody}} the message has a body, so a
> call meant as a GET is sent as a POST. This trips many users, and also AI
> models: in the overnight benchmark of Oct 17-18, a step that calls a stock
> service for each line of a split order failed 6 of 10 times on it ("No body
> available of type: java.io.InputStream but has type:
> java.util.LinkedHashMap"). The behaviour cannot change without breaking
> existing applications, so the documentation and the error should make the
> rule stand out.
> Proposal:
> * The http page starts its Usage section with "Which HTTP method will be
> used": the rule, the trap, the fix ({{httpMethod: GET}}; a GET sends no body
> unless {{getWithBody}} is true) and a YAML example. The section is then also
> in the start of the page that {{camel_catalog_doc}} returns.
> * "How to set the http method" shows the {{httpMethod}} option first, then
> the header.
> * The error for a Map or List body (CAMEL-25309) says, when the method came
> from the body, that the call is a POST because the message has a body, and to
> set {{httpMethod}} GET for a GET.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)