Приложение Flutter не смогло сделать HTTP-запрос на симуляторе iOS
Я попытался сделать простой HTTP-запрос на получение с помощью Dio в приложении Flutter следующим образом:
Dio dio = new Dio();
Response response = await dio.get('https://www.baidu.com');
print(response.data.toString());
Он отлично работает на реальном устройстве iOS, но время ожидания на симуляторах iOS.
SocketException: OS Error: Operation timed out, errno = 60
Я также пробовал другие пакеты, такие как http, но время ожидания истекло. Родные приложения, запущенные на симуляторе, не имеют такой же проблемы. Что я могу сделать, чтобы это исправить?
2 ответа
Я смог заставить его работать с Dio
используя приведенный ниже код в симуляторе iOS, если вы хотите увидеть, как http
проверьте работу поваренной книги, также попробуйте подключиться к открытой сети, например, к домашнему Wi-Fi или что-то еще, и посмотрите
Примечание: это часть из проекта флаттера iOS/ Android
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
fetchData()async {
Dio dio = new Dio();
Response response=await dio.get('https://www.baidu.com');
print(response.data);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Fetch Data Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Fetch Data Example'),
),
body: Center(
child: new IconButton(icon:new Icon(Icons.all_inclusive) , onPressed: (){
fetchData();
})
),
),
);
}
}
ОТВЕТ
flutter: <!DOCTYPE html>
<!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta content="always" name="referrer">
<meta name="theme-color" content="#2932e1">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" href="/content-search.xml" title="百度搜索" />
<link rel="icon" sizes="any" mask href="//www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg">
<link rel="dns-prefetch" href="//s1.bdstatic.com"<…>
Если ни один из API не работает в симуляторе, я предполагаю, что это связано с настройками прокси-сервера вашей системы, поскольку он использует Интернет ваших компьютеров. Пожалуйста, посмотрите.