Its tricky in Java land because many servlet engines make the body
unavailable for form-encoded data. Given the prevalance of this platform its
probably worth a spec change.

On Tue, Mar 10, 2009 at 4:41 AM, Chris Chabot <[email protected]> wrote:

> That actually isn't spec compliant, is it? Since the spec states that the
> default should always be assumed to be 'json'.
> With php-shindig it checks to see if it has a recognizable content-type
> header, if not it checks for a recognizable format=foo query param, and
> otherwise sets the expected input & output formats to 'json', which means
> in
> this case everything works as expected.
>
> No biggy, and i have commit access to the php opensocial client library so
> I'll go and update that, however for people who roll their own (or use
> different libraries which makes the same assumption) it might be worth it
> to
> change this behavior in my opinion.
>
>   -- Chris
>
> On Sun, Mar 8, 2009 at 5:09 PM, Adam Winer <[email protected]> wrote:
>
> > Your content type is
> >
> >  Content-Type: application/x-www-form-urlencoded
> >
> > ... which is wrong, it's application/json.  With the content type you
> > give, the form body gets parsed as query parameters, and isn't
> > available as JSON content.
> >
> > -- Adam Winer
> >
> > On Sat, Mar 7, 2009 at 11:52 PM, Chirag Shah <[email protected]>
> > wrote:
> > > I seem to be getting "Could not convert  to class java.util.HashMap"
> when
> > > updating appData when the content-type is
> > > "application/x-www-form-urlencoded" on the latest 1.0.x-incubating
> build.
> > >
> > > I was able to track the issue down to line 99 of AppDataHandler where
> it
> > > internally tries to parse an empty postBody into a JSONObject and dies.
> > > Everything works fine if I change the Content-Type to application/json.
> > >
> > > What is the reccomended content-type when a client updates appData? The
> > > opensocial-php-client uses "Content-Type:
> > application/x-www-form-urlencoded"
> > > when it wants to update appData.
> > >
> > >
> > > Here's a dump of the request to my server (sandbox.orkut.com gives a
> > similar
> > > response):
> > >
> > > POST
> > >
> >
> /social/rest/appdata/@viewer/@self/147810927296?oauth_nonce=nonce&oauth_version=1.0&oauth_timestamp=timestamp&oauth_consumer_key=ck&xoauth_requestor_id=guid&oauth_signature_method=HMAC-SHA1&oauth_signature=signature
> > > HTTP/1.1^M
> > > User-Agent: osapi 1.0^M
> > > Host: snip^M
> > > Accept: */*^M
> > > Content-Length: 23^M
> > > *Content-Type: application/x-www-form-urlencoded^M
> > > ^M
> > > {
> > >  "osapiFoo1":"newBar1"}*
> > >
> > > Here is the response:
> > >  <u>The server encountered an internal error (Unknown error Could not
> > > convert  to class java.util.HashMap) that prevented it from fulfilling
> > this
> > > request.</u>
> > >
> >
>

Reply via email to