Я пытаюсь получить первый URL-адрес предварительного просмотра от исполнителя, но каждый раз, когда я выполняю поиск, он возвращает сломанный json. Я могу разобрать его как строку, чтобы получить то, что мне нужно, но json будет намного проще. Вот мой код:Spotify API top-tracks broken
const https = require('https');
var open = require('open')
function songError(){
console.log('There was some kind of error fetching your artist ;(');
}
function getTopSong(p_id){
https.get('https://api.spotify.com/v1/artists/'+p_id+'/top-tracks?country=BR', function(res){
res.on("data", function(chunk){
var json = JSON.parse(chunk.toString('utf8'));
console.log(json);
});
});
}
function getArtistID(p_name) {
https.get('https://api.spotify.com/v1/search?q='+encodeURI(p_name)+'&type=artist', function(res){
res.on("data", function(chunk) {
var json = JSON.parse(chunk.toString('utf8'));
if(json['artists']['items'][0]['id'] != undefined || json['artists']['items'][0]['id'] != null){
console.log('id: ',json['artists']['items'][0]['id']);
getTopSong(json['artists']['items'][0]['id']);
}else
{
songError();
}
});
});
}
getArtistID("rage against the machine");
Там, кажется, ошибка в строке 329:
undefined:329
"available_markets" : [ "AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "
Мой вопрос, я делаю что-то неправильно, или это действительно работает? Спасибо!
Вот и все, я забыл соединить все это, глупая ошибка! спасибо! –
И я просто понял, что это, вероятно, не имеет ничего общего с кодировкой передачи с сервера. Апи, вероятно, разложит тело на куски в любом случае, чтобы вы могли загружать гигабайты без необходимости читать все в памяти. – jooon