Dummy Rest API не работает на телефоне React Native - PullRequest
0 голосов
/ 16 июня 2020

Я использую http://dummy.restapiexample.com/ API. При использовании POSTMAN и создании нового сотрудника с помощью POST, похоже, он работает. Но когда я использую ax ios в React Native и делаю то же самое, POST возвращает успешный ответ, но когда я пытаюсь использовать метод GET для получения всех новых сотрудников, я не вижу вновь созданного сотрудника, который работал с POSTMAN. Это мой метод POST

create(){
    axios.post('http://dummy.restapiexample.com/api/v1/create',{
      "name":this.state.name,
      "salary":this.state.sal,
      "age":this.state.age
    }).then((res)=>console.log(res.data)).then(()=>this.setState({createModal:false})).catch(err=>console.log(err))
  }

, и это мой метод GET

async getData(){
    await axios.get('http://dummy.restapiexample.com/api/v1/employees').then((res)=>this.setState({employees:res.data.data},()=>console.log(res.data.data))).catch((err)=>console.log(err))
  }

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Проблема связана с запуском на устройстве Android. После запуска на эмуляторе казалось, что все работает нормально

0 голосов
/ 16 июня 2020

Из вашего примера кода кажется, что вы звоните по http. Обратите внимание, что такие вызовы блокируются iOS и Android, если вы явно не укажете домен, доступ к которому разрешен по http.

Более подробную информацию о сети можно найти здесь: https://reactnative.dev/docs/network

По умолчанию iOS блокирует любой запрос, не зашифрованный с помощью SSL. Если вам нужно выполнить выборку с URL-адреса с открытым текстом (который начинается с http), вам сначала нужно добавить исключение App Transport Security. Если вы заранее знаете, к каким доменам вам потребуется доступ, безопаснее добавлять исключения только для этих доменов; если домены неизвестны до времени выполнения, вы можете полностью отключить ATS. Однако обратите внимание, что с января 2017 года в обзоре Apple App Store потребуется разумное обоснование для отключения ATS. Дополнительную информацию см. В документации Apple.

Либо разрешите домен для незащищенных запросов, либо используйте https.

...