Я использую API-интерфейс fetch в своем мобильном приложении Android для отправки запросов локальному API. Я обычно запрашиваю API из веб-приложений для взаимодействия по адресу http://localhost: 8163.
Я тестирую свое приложение на своем физическом устройстве в режиме отладчика. Я где-то читал, что response-native не может запрашивать localhost так же, как это может сделать веб-приложение. По-видимому, вам нужно использовать http://10.0.2.2:[PORT_NUMBER_HERE]/
который является псевдонимом для " http://127.0.0.1:[PORT_NUMBER_HERE] в соответствии с док-станциями Android-эмулятора. Я не уверен, что это то, что я должен делать для тестирования на физическом устройстве.
Код моей выборки выглядит следующим образом:
fetchToken() {
fetch('http://10.0.2.2:8163/extension/auth', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json'
}
})
.then((response)) => console.log('successful fetchToken response: ', response.json()))
.catch((error) => console.log('fetchToken error: ', error))
.done();
}
Запрос всегда зависает некоторое время, а затем достигает блока catch
с бесполезной ошибкой TypeError: Network request failed(...)
Ошибка TypeError: Network request failed(...)
. Проверяя журналы для моего локального API, они вообще не регистрируют запрос.
Поэтому я понятия не имею, правильно ли я запрашиваю свой локальный API, чтобы получить тот ресурс, который я хочу, и если да, то я не знаю, почему сбой неудачен.