I opened an issue about this: http://code.google.com/p/web2py/issues/detail?id=1233&thanks=1233&ts=1355860665
On Tuesday, 18 December 2012 03:36:55 UTC-6, Daniel Gonzalez wrote: > > Indeed Massimo, that is the file. > > Some comments: > > - I am forcing Content-Type to 'application/json-rpc' in WebClient.post > - The data must be already json encoded > - The opener.addheaders is still used, but since I am using > a urllib2.Request (to *really* force the Content-Type, which can not be > done with addheaders, as you can see in the previously linked > StackOverflow > question), I would say the headers set with addheaders are not really > active. > - That means self.detault_headers are probably not used > - for jsonrpc post I have disabled form processing > - and last but not least, my changes are based on 2.0.2. I assume no > big changes have been done for the WebClient since then, but I have not > verified. > > I am not sure what are the implicactions of all these changes. Maybe some > corrections are in order. > > On Tuesday, December 18, 2012 4:27:26 AM UTC+1, Massimo Di Pierro wrote: >> >> you point me to the file? Is it this one? >> >> >> https://github.com/gonvaled/web2py/blob/webclient_add_jsonrpc/gluon/contrib/webclient.py >> >> >> On Monday, 17 December 2012 14:01:18 UTC-6, Daniel Gonzalez wrote: >>> >>> I have slightly modified the WebClient to support jsonrpc. I am not sure >>> everything is correctly covered, but it is suiting my needs. >>> >>> In case you are interested, you can see the changes here: >>> >>> https://github.com/gonvaled/web2py/tree/webclient_add_jsonrpc >>> >>> The biggest problem I had was >>> that opener.addheaders.append((key,str(value))) is not working as (I) >>> expected: the content-type is not rewritten: >>> >>> http://stackoverflow.com/questions/13920211/not-possible-to-set-content-type-to-application-json-using-urllib2 >>> >>> On Monday, December 17, 2012 6:38:30 PM UTC+1, Daniel Gonzalez wrote: >>>> >>>> Hi, >>>> >>>> I am trying to understand how to use the included WebClient to test a >>>> JSONRPC interface. One showstopper for me at the moment is that I see the >>>> following in WebClient.post: >>>> >>>> # time the POST request >>>> data = urllib.urlencode(data) >>>> t0 = time.time() >>>> self.response = opener.open(self.url,data) >>>> self.time = time.time()-t0 >>>> >>>> When doing JSONRPC accesses I do not want the data to be urlencoded. >>>> Actually, I will prepare the data with json.dump, and I want WebClient to >>>> POST it transparently (I guess this goes in the body of the POST request). >>>> Is this at all possible? Is there an example of WebClient usage >>>> for JSONRPC interfaces somewhere? >>>> >>>> Thanks, >>>> Daniel Gonzalez >>>> >>> --

