I'm working on a patch for this. I have a question. The Camel binding layer appears to be mapping non Restlet message headers into URL parameters via the Restlet Form object. I believe URL parameters are only valid for GET and POST w/content type of application/x-www-form-urlencoded. What should we do with the headers for PUT, DELETE, and non-form POSTs?
Should I move this thread to the developers forum? I wasn't sure if only jira stuff went there. William Tam wrote: > > I see. The method probably should have called request.setEntity(Sting, > MediaType) similar to the response message. I'm looking forward to your > patch. > > Thanks, > William > > Bee1000 wrote: >> You can set the header, but it is not used in the code. The method calls >> form.getWebRepresentation() which is hard coded to use >> 'application/x-www-form-urlencoded'. >> >> I will look into creating a jira issue and a test case, and possibly >> provide >> a fix as well. >> >> Rich >> >> >> William Tam wrote: >> >>> Have you tried setting the Content-Type header (to "application/json") >>> in your request Camel message? It looks like >>> DefaultRestletBinding.populateRestletRequestFromExchange() method will >>> add the header to the Form. If it does not work, any chance you are >>> create a Jira with a testcase? A patch would be great, too. :-) >>> >>> Bee1000 wrote: >>> >>>> Using http does work, but it still seems like a bug to hard code the >>>> encoding >>>> of post data for restlet. I thought post data could be any text or >>>> binary >>>> data. It seems like this reduces the usefulness of the restlet camel >>>> component. Just out of curiosity, is there another reason why the >>>> encoding >>>> is hardcoded? (Perhaps to be more precise, the message body is being >>>> encoded in the RESTLET component, which for POST means that post data >>>> is >>>> being encoded.) >>>> >>>> >>>> >>>> willem.jiang wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> I think you can try to use Camel-Http component, which is leverage >>>>> common http client to invoke the http service. >>>>> >>>>> Willem >>>>> >>>>> Bee1000 wrote: >>>>> >>>>> >>>>>> I'm trying to post documents to couchdb using restlet but the restlet >>>>>> component is hard coded to url encode the post data. This makes the >>>>>> JSON >>>>>> text i'm posting invalid. Do I need to use some other component or >>>>>> is >>>>>> there >>>>>> a way around this? >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >> >> > > -- View this message in context: http://old.nabble.com/Restlet-url-encoding-post-data--tp28197024p28257057.html Sent from the Camel - Users mailing list archive at Nabble.com.