尝试从 lifelog-api 请求数据时得到奇怪的响应
Get a weird reponse while trying to request data from the lifelog-api
我在请求数据时遇到问题,当我在 API 资源管理器中尝试时它工作正常但是当我要从我的 webapp 发出请求时它只是以状态 200 响应和一个充满奇怪字符的 body。
请求:
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.
响应不断,我想 copy/pasting 所有这些都没有意义。我不确定我是否真的需要发送前面带有 Bearer 一词的令牌,但这就是给我状态代码 200 的原因。
由于您正在请求 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
};
然后你应该查看 body 参数而不是 res 你只想要实际的生命日志数据
request(options, function(err, res, body) {
console.log(body)
});
希望对您有所帮助。
干杯
我在请求数据时遇到问题,当我在 API 资源管理器中尝试时它工作正常但是当我要从我的 webapp 发出请求时它只是以状态 200 响应和一个充满奇怪字符的 body。
请求:
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.
响应不断,我想 copy/pasting 所有这些都没有意义。我不确定我是否真的需要发送前面带有 Bearer 一词的令牌,但这就是给我状态代码 200 的原因。
由于您正在请求 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
};
然后你应该查看 body 参数而不是 res 你只想要实际的生命日志数据
request(options, function(err, res, body) {
console.log(body)
});
希望对您有所帮助。
干杯