【发布时间】:2018-10-26 10:37:05
【问题描述】:
我正在新创建的项目中使用最新的颤振版本。
我正在尝试调用此 URL https://jsonplaceholder.typicode.com/users
但在 iOS 或 Android 上,我收到 flutter: Error SocketException: OS Error: Connection refused, errno = 61, address = jsonplaceholder.typicode.com, port = 52988
这是我的网络电话:
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:test_flutter/constants.dart';
import 'package:test_flutter/users/models/user.dart';
class UserNetworkDatasource {
Future<List<User>> retrieve() async {
var httpClient = HttpClient();
var uri = new Uri.https(baseUrl, '/users');
var request = await httpClient.getUrl(uri);
var response = await request.close();
var responseJson = await response.transform(utf8.decoder).join();
List userMap = json.decode(responseJson);
return userMap.map((jsonUser) => User.fromJson(jsonUser));
}
}
除此之外还有什么可以做的吗? 我检查了 Android 清单,它有 Internet 权限,所以应该没问题
Flutter 0.3.2 • 频道测试版
框架 • 修订版 44b7e7d3f4(4 周前) • 2018-04-20 01:02:44 -0700
引擎 • 修订版 09d05a3891
工具• Dart 2.0.0-dev.48.0.flutter-fe606f890b
【问题讨论】:
-
请确保网络在您的设备中可用..您仍然收到异常吗?
-
你应该尝试直接使用http包pub.dartlang.org/packages/http而不是dart:io。更多资源在这里flutter.io/cookbook/networking/fetch-data
-
@ShyjuM 我有网络,因为我可以从设备浏览器访问相同的 URL :)
-
@HadrienLejard 我先试试这个 :) 但同样的错误
-
是的,我跟着这个 :) 我发现了问题,我不得不添加标题“accept:application/json”,之后一切都很好......