【问题标题】:FLUTTER | Communication problem using HTTP颤振 |使用 HTTP 的通信问题
【发布时间】:2020-12-20 21:42:03
【问题描述】:

直到刚才,我还在开发一个模拟器,一切都很好。 现在我已经在我的 Android 上安装了该应用程序,但我收到一条错误消息。 我在http包中使用。

在登录页面上,发送登录请求。电子邮件变量和密码变量。 它是在 HTTP 包的请求中发送的。它来到服务器进行测试和返回结果。 如果是肯定的,则连接到下一页。如果不是,它会保留在同一页面上。

到目前为止,它工作得非常好。 突然不行了,为什么?

控制台:

E/flutter ( 5005): [ERROR:flutter/lib/ui/ui_dart_state.cc(171)] Unhandled Exception: SocketException: Insecure socket connections are disallowed by platform: almog.*******.com
E/flutter ( 5005): #0      Socket.startConnect (dart:io/socket.dart:823:9)
E/flutter ( 5005): #1      _ConnectionTarget.connect (dart:_http/http_impl.dart:2196:18)
E/flutter ( 5005): #2      _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2547:12)
E/flutter ( 5005): #3      _HttpClient._getConnection (dart:_http/http_impl.dart:2552:19)
E/flutter ( 5005): #4      _HttpClient._openUrl (dart:_http/http_impl.dart:2438:12)
E/flutter ( 5005): #5      _HttpClient.openUrl (dart:_http/http_impl.dart:2323:7)
E/flutter ( 5005): #6      IOClient.send (package:http/src/io_client.dart:31:37)
E/flutter ( 5005): #7      BaseClient._sendUnstreamed (package:http/src/base_client.dart:91:38)
E/flutter ( 5005): #8      BaseClient.post (package:http/src/base_client.dart:32:7)
E/flutter ( 5005): #9      post.<anonymous closure> (package:http/http.dart:70:16)
E/flutter ( 5005): #10     _withClient (package:http/http.dart:166:20)
E/flutter ( 5005): #11     post (package:http/http.dart:69:5)
E/flutter ( 5005): #12     _LoginPageState.signIn (package:kibuiramon/service/service_log.dart:103:26)
E/flutter ( 5005): <asynchronous suspension>
E/flutter ( 5005): #13     _LoginPageState.showPrimaryButton.<anonymous closure> (package:kibuiramon/service/service_log.dart:346:15)
E/flutter ( 5005): #14     _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
E/flutter ( 5005): #15     _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
E/flutter ( 5005): #16     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
E/flutter ( 5005): #17     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
E/flutter ( 5005): #18     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
E/flutter ( 5005): #19     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:259:7)
E/flutter ( 5005): #20     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
E/flutter ( 5005): #21     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:362:20)
E/flutter ( 5005): #22     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)
E/flutter ( 5005): #23     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)
E/flutter ( 5005): #24     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)
E/flutter ( 5005): #25     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
E/flutter ( 5005): #26     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)
E/flutter ( 5005): #27     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 5005): #28     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 5005): #29     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 5005): #30     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 5005): #31     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
E/flutter ( 5005): 

Manifest 中的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="READ_PRIVILEGED_PHONE_STATE"/>
<uses-permission android:name="REQUEST_PHONE_CALL" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

登录功能:

signIn(String email, pass) async {
    var prefs = await SharedPreferences.getInstance();

    print(email+pass);
    Map data = {'email': email, 'password': pass , };
    var response = await http.post("http://************.com?do=check_user",body: data);
    if (response.statusCode == 200) {
      List<dynamic> jsonResponse = json.decode(response.body);


      if (jsonResponse[0]['error'] == 'true')
      {
        ErrorConnect = true;
        setState(() {
          _isLoading = false;
        });


      }else{ErrorConnect = false;}
      if(ErrorConnect == false) {
        id = jsonResponse[0]['id'];
        log = jsonResponse[0]['log_in'];
        banned = jsonResponse[0]['banned'];
        prefs.setString("id", id);
        prefs.setString("log_in", log);
        prefs.setString("banned", banned);
        prefs.setString('email', jsonResponse[0]['email']);
        if (banned == '1') {
          Navigator.of(context).pushAndRemoveUntil(
              MaterialPageRoute(builder: (BuildContext context) => NotFound()),
                  (Route<dynamic> route) => false);
        } else {
          Navigator.of(context).pushAndRemoveUntil(
              MaterialPageRoute(builder: (BuildContext context) => RoutePage()),
                  (Route<dynamic> route) => false);
        }
      } else {
      setState(() {
        _isLoading = false;
      });

    }
  }
    }

编辑

现在它的工作! 我需要将 url 从 http 转换为 https 。

【问题讨论】:

  • 这主要是因为没有互联网连接。你检查连接了吗?
  • 我发现了问题,我需要将http转换为https

标签: android-studio http flutter


【解决方案1】:

简单.. 您需要将 http: 转换为 https: 它会像魅力一样发挥作用..

【讨论】:

    【解决方案2】:

    如果您无法将 http 转换为 https,您可以启用 cleartextTraffic。

    安卓:

    创建文件 res/xml/network_security_config.xml

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">your-http-domain.com</domain>
        </domain-config>
    </network-security-config>
    

    之后,将其添加到您的 AndroidManifest:

    </application>
        ...
        <meta-data android:name="io.flutter.network-policy"
            android:resource="@xml/network_security_config"/>
    </application>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 2021-08-08
      • 2021-12-16
      • 2020-02-16
      • 2021-11-16
      • 2021-05-05
      • 2022-01-12
      相关资源
      最近更新 更多