Неверный запрос на исправление исходной выборки
Я использую собственный 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();