При попытке получить доступ к поиску по Zomato («Ax ios)» было получено «Запрос не выполнен с кодом состояния: 404». - PullRequest
0 голосов
/ 27 марта 2020

Я только начал изучать реакцию на естественный язык и столкнулся с проблемой.

Моя цель: 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;

the emulator screen

1 Ответ

0 голосов
/ 27 марта 2020

Ошибка 404 отображается, потому что вы отправляете неверный URL

В вашем экземпляре Ax ios вы задаете базовый путь как

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

Когда вы вызываете этот экземпляр, вы добавляете свой базовый путь с помощью "/search", как показано ниже,

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

Теперь ваш окончательный URL выглядит следующим образом

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

Чтобы исправить это, вы можете удалить /search из Ax ios экземпляр или позвоните своему топору ios экземпляр api.get('/', { params: { count: 15, q: term, entity_id: 4 } })

Надеюсь, это поможет вам. Не стесняйтесь сомнений.

...