You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中Axios调用Yelp API出现401错误求助

解决Yelp API 401未授权错误及React Native调用问题

错误原因

401状态码明确表示请求未通过授权,你的猜测完全正确——Udemy课程提供的旧API Key已经失效或被原作者撤销。Yelp API Key与开发者账号绑定,不允许共享,且存在有效期和请求限额限制,必须使用个人专属Key。

解决步骤

1. 获取个人Yelp API Key

  • 登录Yelp开发者平台(使用普通Yelp账号即可注册/登录)
  • 进入「Create App」页面,填写应用名称、描述等基础信息
  • 创建完成后,在应用详情页即可获取你的专属API Key(标注为「API Key」或「Bearer Token」)

2. 替换代码中的API Key

修改你的Yelp API配置文件(api/Yelp.js),将Authorization头中的Bearer令牌替换为自己的API Key:

import axios from 'axios'

export default axios.create({
    baseURL:'https://api.yelp.com/v3/businesses', // 建议改用HTTPS
    headers:{
        Authorization: "Bearer 你的个人API_KEY",
    }
})

注意:确保Bearer与Key之间有一个空格,格式不能出错

3. 修复未处理的Promise拒绝错误

你的searchApi函数缺少错误捕获逻辑,导致出现Possible Unhandled Promise Rejection警告。添加try-catch块处理请求错误:

const searchApi = async () =>{
    try {
        const response = await Yelp.get('/search',{
            params: 
            {
                limit: 50,
                term : term,
                location: 'san jose'
            }
        })
        setResults(response.data.businesses)
    } catch (error) {
        console.error('API请求失败:', error.response?.data?.error?.description || error.message);
        // 可在此添加用户友好的错误提示,比如显示Toast或文本
    }
}

4. 验证BaseURL协议

将原代码中的http://api.yelp.com改为https://api.yelp.com,避免HTTP协议可能导致的安全限制或跳转问题。

关于共享API Key的说明

Yelp严格禁止共享API Key,共享会导致双方账号被封禁,且每个Key有月度请求限额。请务必使用自己申请的专属Key,这是唯一合规且可靠的方式。

内容的提问来源于stack exchange,提问作者tatem allies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:05:32