I used Requests
module in Python, and sent a request and got a response.
The response seems to be gzip
, given that r.headers
has the following information:
{'Date': 'Tue, 06 Dec 2016 17:35:44 GMT', 'Content-Type': 'application/json', 'Content-Length': '21632', 'Cache-Control': 'public,max-age=3600', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding'}
However, while Requests
decides its encoding and returns the decompressed data, when I tried to check out r.text
, it got UnicodeEncodeError: 'ascii' codec can't encode character XXX
.
Digging it out further, I found that there is one encoding error in the response (r.content
, which returns the data as bites
).
Currencies":[{"Code":"JPY","Symbol":"\xc2\xa5","ThousandsSeparator":",...
However, I'm not sure how I can process the mistakedn encoding error. Even if I set its encoding to utf-8
(r.encoding = "utf-8"), I still got the UnicodeEncodeError
. I feel that it was gzip
that caused its problem which Requests
proceessed automatically, but how can I correct its wrong yet automatically done decoding?
I sent a request to a SkyScanner's API, with a following code:
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json",
"charset": "utf-8"
}
r = requests.get(url, headers=headers)
What am I missing here?