[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