#python #flutter #http
Вопрос:
Я изо всех сил пытался подключить скрипт python к flutter, мой скрипт python отлично работает в браузере, однако в flutter ожидание http.get(url) возвращает значение null, или вы можете сказать, что он вообще не выполняется (так как я пытался добавить ответ на печать, но в консоли ничего не отображается). Я работаю на локальном сервере и использую USB-порт, подключенный к моему реальному устройству/телефону.
IP, который я использую: `10.0.2.2:5000`, и я также попробовал `127.0.0.1:5000`
FlatButton(
onPressed: () async {
var response = await http.get(url);
print('hi$response'); // from this line, nothing executing
if (response.statusCode == 200) {
print(response.body);
var decodedData = json.decode(response.body);
setState(() {
queryText = decodedData['Query'];
});
} else {
print("server side error: ${response.body}");
}
},
child: Text("Click me")),
Затем через некоторое время он выбрасывает исключение из connection time out
.
Обновление: Я предполагаю, что у моего ожидания есть некоторые проблемы, так как оно возвращает значение null и останавливает выполнение приведенной ниже строки кода.
Пожалуйста, помогите. Спасибо
Комментарии:
1. ваш ноутбук и ваш телефон подключены к одному и тому же Wi-Fi или любой другой сети ? помимо USB
2. @KrishBhanushali оба подключены к одному и тому же Wi-Fi.
Ответ №1:
Я решил проблему, я думаю await
, что она ничего не возвращает и, следовательно, не выполняется ниже строк (даже print
строки). Я установил значение host
0.0.0.0
в app.run и использую ipv4-адрес в приложении flutter, и все начинает работать.
На языке python:
app.run(debug=True,host='0.0.0.0', port=5000)
Во флаттере(URL-адрес есть):
http://192.168.1.2:5000/tt