camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William Tam <email.w...@gmail.com>
Subject Re: Restlet url encoding post data?
Date Thu, 15 Apr 2010 19:38:11 GMT
I guess we do not have to use Form object.   If using String yields a 
more generic solution, we probably should do it.   I am comparing the 
response message which calls the setEntity() with a String and we can 
specify the media type.   The headers are set  as attributes in the 
Restlet message.

Bee1000 wrote:
> 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?
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>   
>>>>>       
>>>>>           
>>>>     
>>>>         
>>>   
>>>       
>>     
>
>   

Mime
View raw message