如何解决Flutter 错误:未处理的异常:HandshakeException:客户端中的握手错误
我正在尝试在本地测试我的 Flutter 应用程序,并在本地连接到我的 API。我在 localhost:5000 上运行了该应用程序,这是我创建的一个简单登录表单的代码。
import 'dart:convert';
import 'package:Flutter/material.dart';
import 'package:http/http.dart' as http;
import 'groups.dart';
import 'signup.dart';
class Token {
final String userToken;
Token({this.userToken});
factory Token.fromJson(Map<String,dynamic> json) {
print(json);
return Token(
userToken: json['title'],);
}
}
class Login extends StatefulWidget {
Login({Key key}) : super(key: key);
@override
LoginState createState() => LoginState();
}
class LoginState extends State<Login> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
var userData = {};
void updateField(String value,String field) {
setState(() {
userData = {
...userData,'$field': value,};
});
}
Future<http.Response> sendLogin(user) {
final response = http.post(
Uri.parse('https://10.0.2.2:5000/api/User/Login'),headers: <String,String>{
'Content-Type': 'application/json',},body: jsonEncode(user),);
print(response);
return response;
}
@override
Widget build(BuildContext context) {
return Material(
child: Column(children: <Widget>[
Form(
key: _formKey,child: Column(
crossAxisAlignment: CrossAxisAlignment.start,children: <Widget>[
TextFormField(),// these 2 form fields are commented out because they're already confirmed
TextFormField(),// to be working perfectly.
Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0),child: ElevatedButton(
onpressed: () {
if (_formKey.currentState.validate()) {
sendLogin(userData);
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => Groups(),));
}
},child: Text('Submit'),),],ElevatedButton(),// removed inside because it's a link to another page
);
}
}
我在此处查看了此链接how to solve flutter CERTIFICATE_VERIFY_FAILED error while performing a POST request?
该链接使我在 main.dart 文件中包含更多内容,至少出于测试目的,以这样的方式结束
import 'dart:io';
import 'package:Flutter/material.dart';
import 'package:mobile_v2/Packages/user-check.dart';
void main() {
HttpOverrides.global = new MyHttpOverrides();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Gathering',home: UserCheck(),);
}
}
class MyHttpOverrides extends HttpOverrides{
@override
HttpClient createHttpClient(SecurityContext context){
return super.createHttpClient(context)
..badCertificateCallback = (X509Certificate cert,String host,int port)=> true;
}
}
在进行这些更改后,为了安全起见,我运行了一个 Flutter pub get,但我仍然遇到相同的问题。我已经浏览了该帖子中的大部分答案,它仍然给出了相同的结果。任何其他可能的答案将不胜感激。谢谢你。 (下面还有扑医生)
[√] Flutter (Channel stable,2.0.5,on Microsoft Windows [Version 10.0.19041.985],locale en-US)
• Flutter version 2.0.5 at C:\src\Flutter\Flutter
• Framework revision adc687823a (5 weeks ago),2021-04-16 09:40:20 -0700
• Engine revision b09f014e96
• Dart version 2.12.3
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users\ocdam\AppData\Local\Android\sdk
• Platform android-30,build-tools 30.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-Flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] IntelliJ IDEA Community Edition (version 2019.3)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-Flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
[√] VS Code (version 1.56.2)
• VS Code at C:\Users\ocdam\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.22.0
[√] Connected device (3 available)
• sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
• Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.212
• Edge (web) • edge • web-javascript • Microsoft Edge 90.0.818.49
• No issues found!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。