Получите странный ответ при попытке запросить данные у lifelog-api
У меня проблемы с запросом данных, он работает нормально, когда я пытаюсь сделать это в API проводнике, но когда я собираюсь сделать запрос из моего веб-приложения, он просто отвечает статусом 200 и телом, заполненным странными символами.
Запрос:
const options = {
url: 'https://apigateway.lifelog.sonymobile.com/v1/users/me/activities',
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': "Bearer " + access_token,
'Accept-Encoding': 'gzip',
'Content-Encoding': 'gzip'
}
};
request(options, function(err, res, body) {
console.log(JSON.stringify(res))
});
Ответ:
{"statusCode":200,"body":"\u001f?\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003\u0000\u0000\u0000???Xmo#E\u0012?+?_o?S?U?/????\u0017-???8V?Bh????u??\u0010V???W?\rd??e$\u0004? ????kMU?O=?w?]?_?????w?U?X.
Ответ продолжается, и я думаю, что нет смысла копировать / вставлять все это. Я не уверен, нужно ли мне отправлять токен со словом "Несущий на переднем плане", но именно это дало мне код состояния 200.
1 ответ
Решение
Так как вы запрашиваете кодировку gzip, вам нужно указать запрос на получение содержимого gzip, просто добавьте gzip: true для вас.
const options = {
url: 'https://apigateway.lifelog.sonymobile.com/v1/users/me/activities',
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer ' + access_token,
'Accept-Encoding': 'gzip',
'Content-Encoding': 'gzip'
},
gzip: true
};
И тогда вы должны смотреть на параметр тела вместо res, вы просто хотите фактические данные журнала жизни
request(options, function(err, res, body) {
console.log(body)
});
Надеюсь это поможет.
ура