【问题标题】:Getting a 'Request failed with status code:404' when trying to access zomato search (axios)尝试访问 zomato 搜索(axios)时收到“请求失败,状态码:404”
【发布时间】:2020-07-08 00:19:35
【问题描述】:

我刚开始学习 react-native 并遇到了一个问题。

我的目标是: 1-通过输入关键词使用搜索栏搜索我所在城市的餐馆。 2-我有 API 密钥 3-用过的axios 4- 获取基本 URL

现在,当我在模拟器屏幕上搜索关键字时,它显示错误并且不返回任何结果。

我附上了 2 个屏幕的代码以及模拟器屏幕的屏幕截图。 请帮帮我!

import axios from 'axios';

export default axios.create({
    baseURL:'https://developers.zomato.com/api/v2.1/search',
    headers:{
        Authorization : 'Bearer b7510cd6146de7b9b81e17ddb7e0122b'
    }
});

和搜索屏幕代码

import React, {useState} from 'react';
import {View,Text,StyleSheet} from 'react-native';
import SearchBar from '../components/searchBar';
import zomato from '../api/zomato';

const searchScreen = ()=>{
    const [term,setTerm] = useState('');
    const [results,setResults] = useState([]);
    const searchAPI = async () =>{
      const response = await zomato.get('/',{
        params:{
            count:15,
            q:term,
            entity_id:4
            
        }
      });
      setResults(response.data.restaurants);
    };
    return (
    <View>
        <SearchBar 
        term ={term} 
        onChangeTerm = {setTerm}
        onTermSubmit = {searchAPI}
        />
        <Text>
            Search Screen
        </Text>
        <Text>we found {results.length} results</Text>
    </View>
    );
};

const styles = StyleSheet.create({});

export default searchScreen;

【问题讨论】:

    标签: javascript android reactjs react-native react-native-android


    【解决方案1】:

    显示错误 404,因为您发送的 URL 无效

    在您的 Axios 实例中,您将基本路径设置为

    https://developers.zomato.com/api/v2.1/search
    

    当您调用该实例时,您将使用"/search" 附加基本路径,如下所示,

    await api.get('/search', { params: { count: 15, q: term, entity_id: 4 } })
    

    现在您的最终到达网址如下所示

    https://developers.zomato.com/api/v2.1/search/search?.....
    

    要解决此问题,您可以从 Axios 实例中删除 /search 或调用您的 axios 实例 api.get('/', { params: { count: 15, q: term, entity_id: 4 } })

    希望这对您有所帮助。如有疑问,请随意。

    【讨论】:

    • 嘿!非常感谢你。我也试过了,但错误仍然存​​在,我不知道我哪里出错了。我已经采用了 zomato API 页面中给出的确切 URl 和参数。我也做了你建议的改变。 @SDushan
    • @PrajwalKumarss 是同样的错误吗?如果是这样,您能否使用更新的代码更新您的问题,那么我可能会为您提供帮助。
    • 是的,先生!我已经按照建议更新了问题,现在的错误是'可能未处理的承诺拒绝'错误-'请求失败,状态码为 404'@SDushan
    • @PrajwalKumarss 标题应该是这样的 'user-key': 'b7510cd6146de7b9b81e17ddb7e0122b' 根据他们的文档
    • 您的意思是应该是用户密钥而不是授权? @SDushan
    猜你喜欢
    • 2021-04-10
    • 2022-11-13
    • 2020-04-05
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多