Неверный запрос на исправление исходной выборки

Я использую собственный API-интерфейс Fetch для получения данных JSON из https://api.github.com/users/{username}, но запрос выходит из строя со следующим сообщением об ошибке.

"TypeError: сетевой запрос не выполнен {stack: (...), сообщение: 'Network запрос не выполнен" }".

Я верю в https, иногда вы получаете NSURLAuthenticationChallenge. Я не уверен, как это реализовать. Кто-нибудь есть об этом?

Ответ 1

Можете ли вы предоставить фрагмент кода fetch?

Как правило, оператор fetch записывается так:

fetch(requestURL)
  .then( (response) => response.json() )
  .then( (data) => {
    this.setState({data: data});
   })
  .catch( (error) => console.log(error) )
  .done();

Улавливание ошибки позволит программе работать без сбоев.

Ответ 2

В моем случае проблема не была в коде. Я начал эмулятор, когда не было сети. После того, как я вошел в сеть Wi-Fi, эмулятор все еще не работал. Я перезапустил эмулятор - все сработало.

Итак:

  • Подключение к сети.

  • Перезапустить эмулятор.

Если это не поможет, проверьте свой код.

Ответ 3

У меня также была эта проблема React Native Fetch Request Fails очень часто.

В моем случае ответ от вызова API был около 5 КБ, поэтому я удалил ненужные данные из ответа API и уменьшил размер результата до 1 кбайта, и все начали работать.

Итак, постарайтесь ограничить данные, запрашиваемые у API.

Ответ 4

Вы пробовали XMLHttpRequest?

Как показано в документе, https поддерживается XMLHttpRequest:

var request = new XMLHttpRequest();
request.onreadystatechange = (e) => {
  if (request.readyState !== 4) {
    return;
  }

  if (request.status === 200) {
    console.log('success', request.responseText);
  } else {
    console.warn('error');
  }
};

request.open('GET', 'https://mywebsite.com/endpoint.php');
request.send();