React Native fetch возвращает 404, но почтальон делает 200 ok - PullRequest
0 голосов
/ 22 октября 2019

Я интегрирую Spotify web api в собственное приложение. У меня проблема с React Native fetch. Когда я вызываю API внутри Postman, я получаю код ответа 200, но если я запускаю его в эмуляторе (реагирует на нативную версию), я получаю код ошибки 404. Я также написал запрос на выборку внутри консоли Chrome, и он работает хорошо, но в программе native native он не работает.

Код, который я запускаю:

let response = await fetch(`https://api.spotify.com/v1/browse/featured-playlists?locale=en_US&country=US`, {
        method: 'GET',
        headers: {
            'Accept': 'application/json;charset=utf-8',
            'Content-Type': 'application/json;charset=utf-8',
           'Authorization': 'Bearer BQDT3_xtYLyIsGaqhoTM42Z-k3ijs-hFbzIG89basd7Me-kL4SUWSLgQrxWN3b13DiqU6THfr4VH4Z7klnc' 
        }
    });
    console.log("response",response.status)

1 Ответ

0 голосов
/ 22 октября 2019

Я попробовал следующий код в React Native v. 0.58.6

async componentDidMount() {
    let spotifyApiUrl = "https://api.spotify.com/v1/browse/featured-playlists?locale=en_US&country=US";
    let fetchSettings =  {
        method: 'GET',
        headers: {
            'Accept': 'application/json;charset=utf-8',
            'Content-Type': 'application/json;charset=utf-8',
            'Authorization': 'Bearer BQDT3_xtYLyIsGaqhoTM42Z-k3ijs-hFbzIG89basd7Me-kL4SUWSLgQrxWN3b13DiqU6THfr4VH4Z7klnc' 
        }
    };

    fetch(spotifyApiUrl, fetchSettings)
        .then( (response) => response.json() )
        .then( (responseJson) => {
            console.log(JSON.stringify(responseJson));
        })
        .catch((error) => {
            console.log(error);
        });
}

Со следующим выводом на консоль:

{"error":{"status":401,"message":"The access token expired"}}

Вы пытались подключить ваше реальное устройство, чтобы увидетьесли это проблема эмулятора? Не забудьте переадресовать порты tcp на adb перед запуском «act-native run-android », если вы используете реальное устройство

adb reverse tcp:8081 tcp:8081
react-native run-android
...