【问题标题】:React Native fetch returns 404 but postman does 200 okReact Native fetch 返回 404 但邮递员执行 200 ok
【发布时间】:2019-10-22 07:19:46
【问题描述】:

我正在将 Spotify web api 集成到 react native 应用程序中。我对 React Native fetch 有问题。当我在 Postman 中调用 api 时,我得到 200 响应代码,但如果我在模拟器(反应本机)中运行它,我得到 404 错误代码。我还在 chrome 控制台中编写了 fetch 请求,它运行良好,但在 react 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)

【问题讨论】:

  • 我也有同样的问题。你找到解决办法了吗?
  • 不,我离开了那个项目。

标签: react-native get fetch http-status-code-404 spotify


【解决方案1】:

我在 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"}}

您是否尝试过插入实际设备以查看是否是模拟器问题? 如果您使用的是真实设备,请记住在运行“react-native run-android”之前在 adb 上转发 tcp 端口

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

【讨论】:

  • 您是否也尝试过使用我的代码?如果它仍然不起作用,请尝试调用另一个 url,看看你是否继续收到 404。
  • 是的,我尝试了您的代码,但没有任何改变。我只有 404 和 spotify url,其他的都很好。
  • 因此,您尝试使用我的代码,使用真实设备,尝试使用不同的 url,但问题仅存在于 spotify url。如果您使用的是 Android,请尝试使用 android 目录中的“gradlew clean”清理 gradle 缓存并再次运行该应用程序。 404 的响应信息是什么? “找不到资源”?
猜你喜欢
  • 2018-09-04
  • 1970-01-01
  • 2019-10-29
  • 2020-06-23
  • 1970-01-01
  • 2015-01-04
  • 2015-04-26
  • 2020-11-17
  • 1970-01-01
相关资源
最近更新 更多