首页 > 解决方案 > Flutter REST 调用超时

问题描述

我正在通过颤振对我的服务器进行 api 调用。我已经检查了我的 android 清单设置并放置了

 <uses-permission android:name="android.permission.INTERNET"/>   

但是,api 调用超时。这是我的电话:

Future driverLogin(userdetails) async {
  var url = 'http://$_server/api/token/';

  print(userdetails.values);

  await http.post(url, body: json.encode(userdetails), headers: {
    "Content-Type": "application/json"
  }).then((http.Response response) {
    print(response.body);
    final Map<String, dynamic> responseData = json.decode(response.body);

    Token tkn = Token.fromJSON(responseData);

    _accessTkn = tkn.access;
    _refreshTkn = tkn.refresh;
    print('Refreshingly refreshed ${tkn.refresh}');

    if (response.statusCode == 200) {
      addToken(_accessTkn);
      addRefresh(_refreshTkn);

      print(responseData);
      // tokenType = 'email';

      print('Signed In');
      // preformLogin();
    } else {
      // popupSwitch(2);
      print('Error Could not sign in');
    }
  });
  return _accessTkn;
}

 

当我运行它时,我收到此错误:

错误状态:平台不允许使用不安全的 HTTP:

标签: flutterhttpdart

解决方案


确保像这样导入。

import 'package:http/http.dart' as http;

让你的网址像这样。

var url = 'https://$_server/api/token/';

另请检查此链接可能会对您有所帮助

https://flutter.dev/docs/release/break-changes/network-policy-ios-android https://medium.com/flutter-community/solving-the-new-https-requirements-in-flutter-7abe240fbf23


推荐阅读