Иногда я сталкиваюсь с проблемой, когда пытаюсь запросить локальную конечную точку IP. В моем случае я подключаюсь к точке доступа Wi-Fi, а затем запрашиваю эту конечную точку API. http://192.168.1.1:8080/appliance/info
Журнал ошибок представлен ниже:
Connection 40: received failure notification
Connection 40: failed to connect 1:50, reason -1
Connection 40: encountered error(1:50)
Task <5419BE8A-533C-48A8-A5C6-3911C0D9481C>.<2> HTTP load failed, 0/0 bytes (error code: -1009 [1:50])
Task <5419BE8A-533C-48A8-A5C6-3911C0D9481C>.<2> finished with error [-1009] Error Domain=NSURLErrorDomain Code=-1009 "The internet connection appears to be offline." UserInfo = {_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x122825fe0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo = {_NSURLErrorNWPathKey=unsatisfied (Local network prohibited), interface: en0[802.11], ipv4, uses wifi, _kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <5419BE8A-533C-48A8-A5C6-3911C0D9481C>.<2>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <5419BE8A-533C-48A8-A5C6-3911C0D9481C>.<2>"
), NSLocalizedDescription=The internet connection appears to be offline., NSErrorFailingURLStringKey=http://192.168.1.1:8080/appliance/info, NSErrorFailingURLKey=http://192.168.1.1:8080/appliance/info, _kCFStreamErrorDomainKey=1}
2024-04-30 13:44:27: 🔴 (95) Provider.didReceive() - GET:/appliance/info - URLSessionTask failed with error: The internet connection appears to be offline. - internalServerError - 500
Я проверил, что если я запрошу эту конечную точку в браузере Safari или Chrome, она предоставит мне ожидаемые данные. Это также работает в моем новом демо-приложении для iOS. Но в моем основном приложении всегда происходит сбой. Я делюсь с вами своей конфигурацией файла info.plist для App Transport Security
. К сожалению, эта конфигурация безопасности не решила мою проблему. Info.plist представлен ниже.
Я также делюсь информацией о сети со своего телефона. Любая помощь или предложения приветствуются.
Это похоже на ошибку Apple.
Для тех, кто столкнулся с той же проблемой: это ошибка Apple. Я узнал причину этой проблемы, но не нашел правильного решения. Когда я впервые запрашиваю разрешение на использование Local Network Usage
. Если я отклоняю его, я всегда получаю сообщение 500 — Внутренняя ошибка сервера. Но в следующий раз захожу в настройки и включаю разрешение вручную. Все равно 500 - Внутренняя ошибка сервера. Даже если я удалил приложение, это продолжалось.
Solution
: В этом случае перезагрузите телефон. Я тестировал такое поведение на iPhone 13, iPhone XS и iPhone 15 pro, а наши тестеры также тестировали такое поведение на других устройствах.
Note: I am still looking for a proper solution that can be done instead of restarting the phone.