[Developers] mqlread http response header (content-type)

Tim Kientzle tim at metaweb.com
Thu Sep 18 20:15:43 UTC 2008


There are two problems with this:

  * I don't see how you're getting \u001a in your decoded text.  I've  
been experimenting with this URL:

/api/service/mqlread?query={"query":{"id":"/guid/ 
9202a8c04000641f8000000006e31736","name":null}}

In analyzing the byte values returned from this, I see valid UTF-8;  
none of the byte values are 0x1a and none of the UTF-8 sequences  
decode to anything that looks like \u001a.

  * \u001a is not forbidden in JSON.  JSON permits any Unicode  
character in JSON strings except for " and \ which have to be \-quoted.

What JSON library are you using?

Do you have a short standalone Java program that demonstrates this  
problem?

I'm going to do some more experiments to see if I can reproduce the  
problem you're seeing.  Any suggestions would help.

Tim

On Sep 18, 2008, at 12:05 PM, Augusto Callejas wrote:

> i don’t mind if it was just “text/plain”, but the inclusion of char- 
> set=”utf-8” is a problem.
> is that necessary?
>
> the mql spec already specifies that it supports the utf-8 encoding.  
> to specify it in the content-type of a mqlread HTTP response seems  
> incorrect.
> in my example i’m getting back from mqlread:
>
> ===
> "value" : "Friesengeist 2: Regelm\u001aässige Zerstö\u001arungen"
> ===
>
> when i read this from the HTTP layer my http client will decode the  
> encoded unicode characters above, since the char-set of the HTTP  
> response
> says “utf-8”.  but then when it comes time to interpret JSON from  
> the HTTP layer, the encoded characters are gone, and replaced with  
> the actual
> values, which aren’t parseable, since \u001a is a control character.
>
> augusto.
>
> On 9/18/08 11:53 AM, "Christine Weibel" <xtine at metaweb.com> wrote:
>
> > Hmm.  mqlread did used to return a content-type of application/ 
> json, but
> > there was a deliberate change to text/plain a while ago.  it is my
> > recollection that was done for some browser compatibility issue?   
> perhaps
> > alecf remembers this. ----- Original Message ----- From: "Augusto  
> Callejas"
> > <acallejas at appliedminds.com> To: "For discussions about MQL,  
> Freebase API and
> > apps built on Freebase" <developers at freebase.com> Sent: Thursday,  
> September
> > 18, 2008 11:39:29 AM (GMT-0800) America/Los_Angeles Subject: Re:  
> [Developers]
> > mqlread http response header (content-type) according to the
> > documenation: http://www.freebase.com/view/guid/9202a8c04000641f800000000544e
> > 139 ===== 4.2.2. mqlread Output mqlread returns an HTTP response  
> with a
> > Content-Type header of application/json (or text/plain if the  
> callback
> > parameter was specified). The body of the response is a JSON- 
> serialized
> > envelope object that holds a MQL result object (or objects if  
> multiple queries
> > were submitted). The format of mqlread response envelopes is  
> specified in
> > Section 4.2.3 ===== however i did not specify a callback  
> parameter, so how do
> > i get mqlread to return its response as "application/json" and not
> > text/plain; charset="utf-8". thanks, augusto. On 9/17/08 9:36 AM,  
> "Augusto
> > Callejas" <acallejas at appliedminds.com> wrote: > hi- > > when i  
> perform a
> > mqlread query, i get back HTTP response headers that look > like:  
> > > ===== >
> > Date: Wed, 17 Sep 2008 00:51:35 GMT > , > Server: Apache > , >
> > X-Metaweb-Success: 1/1 > , > Content-Length: 35616 > , > Content- 
> Type:
> > text/plain; charset="utf-8" > , > ... > Connection: Keep-Alive >  
> ===== > > >
> > shouldn't the "Content-Type" header value be "application/json"? > >
> > http://www.iana.org/assignments/media-types/application/ > > i'm  
> having a
> > problem with the 'charset="utf-8"' in the header. > the java http  
> client
> > library that i'm using ( > http://hc.apache.org/httpclient-3.x/)  
> reads the
> > response (see example > below), and decodes any unicode characters  
> (ie.
> > /u001a) into their actual > character value.  however, this is  
> before i get a
> > chance to decode it in my > json library.  however, the unicode  
> characters
> > have already been decoded at > the http level, but not at the json  
> level. > >
> > any thoughts? > > thanks, > augusto. > > > query > ===== > {"q": 
> {"query": >
> > { >   "master_property" : "/type/object/name", >   "operation" :  
> "delete", >
> > "source" : { >     "guid" : "#9202a8c04000641f8000000006e31736"  
> >   }, >
> > "target_value" : { >     "value" : null >   }, >   "timestamp" :
> > "2008-08-30T18:56:23.0000Z", >   "type" : "/type/link", >    
> "valid" : null >
> > } > }} > ===== > > > response > ===== > { >   "master_property" :
> > "/type/object/name", >   "operation" : "delete", >   "source" :  
> { >     "guid"
> > : "#9202a8c04000641f8000000006e31736" >   }, >   "target_value" :  
> { >
> > "value" : "Friesengeist 2: Regelm\u001aässige Zerstö\u001arungen"  
> >   }, >
> > "timestamp" : "2008-08-30T18:56:23.0000Z", >   "type" : "/type/ 
> link", >
> > "valid" : null > } > ===== > > >
> > _______________________________________________ > Developers  
> mailing list >
> > Developers at freebase.com >
> > http://lists.freebase.com/mailman/listinfo/developers  
> ______________________
> > _________________________ Developers mailing
> > list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/develo
> > pers _______________________________________________ Developers  
> mailing
> > list Developers at freebase.com http://lists.freebase.com/mailman/listinfo/develo
> > pers
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers



More information about the Developers mailing list