Уведомления

Группа в Telegram: присоединиться

#1 Авг. 29, 2019 13:15:05

Goodluck
Зарегистрирован: 2019-08-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка отправки get запросов в kivy

Здравствуйте, начал изучать kivy для приложения на android по мониторингу автомобилей на линии в такси, в нашем ПО есть открытое API по нему я формирую запросы и получаю ответы и всё нормально работает в оболочке linux, пакую всё в apk файл запускаю его и белый экран по дебагу я вижу

 requests.exceptions.ConnectionError: HTTPSConnectionPool(host='192.168.2.210', port=8089): Max retries exceeded with url: /common_api/1.0/ping (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xd0e06070>: Failed to establish a new connection: [Errno 13] Permission denied'))
я так понимаю приложение не имеет доступ до сервера, тел по wifi находиться в локальной сети там где и сервер куда я шлю запросы. Вот код для обычного пинг запроса
 import requests
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
class TestApp(App):
    def build(self):
        otvet = requests.get('https://192.168.2.210:8089/common_api/1.0/ping',verify=False)
        x = otvet.json()
        gl = GridLayout(cols=1)
        gl.add_widget(Label(text=str(x)))
        return gl
TestApp().run()
Проверяю всё норм вижу ответ на экране, но в приложении ни как зависает с ошибкой и всё. Подскажите пожалуйста что не так.

Офлайн

#2 Авг. 29, 2019 17:07:26

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  220  -
Профиль   Отправить e-mail  

Ошибка отправки get запросов в kivy

пока специалисты в Андроидах не пришли я спрошу
1) пробовали ли вы делать запрос на другой сервер? Без https ?
2) В телефоне для приложения не заблокирован доступ к wifi или интернету?
3) Наверняка в API Android есть метод ждя проверки доступности приложением выхода в сеть / интерент. Можно пойти по этому пути. Обычно приложение способно понять что интернета нету, и выдать сообщение пользователю об этом.

P.S. Permission denied это не “приложение не имеет доступ до сервера”, это приложение не имеет доступ к ресурсам системы. По аналогии с linux:

 j$ python3
>>> import os
>>> os.listdir('/root')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '/root'
>>> 



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 30, 2019 10:20:35

Goodluck
Зарегистрирован: 2019-08-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка отправки get запросов в kivy

JOHN_16
пока специалисты в Андроидах не пришли я спрошу 1) пробовали ли вы делать запрос на другой сервер? Без https ?2) В телефоне для приложения не заблокирован доступ к wifi или интернету?3) Наверняка в API Android есть метод ждя проверки доступности приложением выхода в сеть / интерент. Можно пойти по этому пути. Обычно приложение способно понять что интернета нету, и выдать сообщение пользователю об этом. P.S. Permission denied это не “приложение не имеет доступ до сервера”, это приложение не имеет доступ к ресурсам системы. По аналогии с linux:
1. Пробовал на другой аналогичный сервер, тоже самое.
2. В телефоне в настройках разрешений вообще нет пункта доступ к интернету у этого приложения только доступ к файлам.
3. Видимо надо где то указать что приложение имеет доступ в интернет, в java в манифесте это указывается

Офлайн

#4 Сен. 2, 2019 09:18:38

Goodluck
Зарегистрирован: 2019-08-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка отправки get запросов в kivy

решил проблему, в файле buildozer.spec надо раскомментировать строку

 # (list) Permissions
android.permissions = INTERNET
вроде логично, но ни где информации не попадалось

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version