如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”
Posted
技术标签:
【中文标题】如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”【英文标题】:how to fix "SocketException: os error: connection timed out error no. 110, address = 000.000.0.00, port = 44935" in flutter 【发布时间】:2020-01-01 13:59:57 【问题描述】:我正在创建一个用户输入详细信息的页面,用户输入详细信息后,它被插入 mysql 数据库,当我使用 php 表单检查代码时,代码工作正常,但在我完成编码后主文件,出现此错误。
未处理的异常:SocketException:操作系统错误:连接超时,errno = 110,地址 = 000..000.0.000,端口 = 44935
代替 localhost,我使用的是我的系统的 IP 地址。
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'Design.dart';
import 'dart:async';
//import 'dart:io';
class UsersProfile extends StatefulWidget
@override
_UsersProfileState createState() => _UsersProfileState();
class _UsersProfileState extends State<UsersProfile>
//textediting controllers name, this is the name of textfield to pick up the data from each field.
TextEditingController nameController = TextEditingController();
TextEditingController genderController = TextEditingController();
TextEditingController ageController = TextEditingController();
var isLoading = false; // loader should be false in starting.
String url = "http://LocalHost/flutter_include/insert.php"; // location of the query file
//this is the onpress function for raised button,
// where first we set the loading to true.
_passValues()
setState(()
isLoading = true;
sendform();
);
Future<String> sendform() async
Map data =
"first": nameController.text,
"gender": genderController.text,
"age": ageController.text
;
print(data);
var result= json.encode(data);
var resp = await http.post(url,
headers: "content-type": "application/json; charset=utf-8",
body: result);
var finalResult = json.decode(resp.body);
print(finalResult);
setState(()
isLoading = false;
);
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
flexibleSpace: gradientAppBar(),
title: Icon(Icons.book,
color: Colors.white,
),
),
body: Stack(
children: <Widget>[
//MyClipper(),
Column(
//mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(30.0),
child: TextField(
keyboardType: TextInputType.text,
controller: nameController,
decoration: InputDecoration(
hintText: 'Full Name',
),
),
),
Padding(
padding: const EdgeInsets.all(30.0),
child: TextField(
keyboardType: TextInputType.number,
controller: ageController,
decoration: InputDecoration(
hintText: 'Age',
),
),
),
Padding(
padding: const EdgeInsets.all(30.0),
child: TextField(
keyboardType: TextInputType.text,
controller: genderController,
decoration: InputDecoration(
hintText: 'Gender',
),
),
),
RaisedButton(
onPressed: _passValues,
child: Text('Save',
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
color: Colors.indigo,
)
],
)
],
)
);
【问题讨论】:
先检查URL String url = "LocalHost/flutter_include/insert.php"; localhost 有一个 H... 一些服务器区分大小写。 您是在 android 模拟器还是 ios 模拟器中测试您的应用程序?你试过在真实设备上运行它吗?当你运行你的 url “LocalHost/flutter_include/insert.php”时,它会显示 JSON 内容吗? 【参考方案1】:您使用的端点可能不正确。确保您使用的 IP 地址也具有分配的端口,即http://192.168.1.100:1234/
【讨论】:
以上是关于如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 java.net.SocketException:损坏的管道?
颤振:异常:SocketException:仅在iOS模拟器上连接失败
SocketException:在 macOS 上使用颤振应用程序连接失败(操作系统错误:不允许操作,errno = 1)