**更新** 通过编辑服务器以在0.0.0.0上侦听来修复此问题 现在得到响应,但是错误消息仍然不正确,它应该显示端口3333不是随机端口。 --- // ---
尝试向http://192.168.1.1:3333发出发布请求时,出现此错误:
SocketException(SocketException:操作系统错误:连接超时, errno = 110,地址= 192.168.2.9,端口= 53744)
每个请求的端口都会更改,但永远不是正确的端口(3333),为什么?这是我的代码
class Api {
static const req_url = 'http://192.168.1.1:3333/api/auth/login';
Future<Auth> fetchAuthToken() async {
Map data = {
'email': 'test@gmail.com',
'password': '123456'
};
//encode Map to JSON
var body = json.encode(data);
var response = await http.post(req_url,
headers: {"Content-Type": "application/json"},
body: body
);
if (response.statusCode == 200) {
// If the call to the server was successful, parse the JSON
return Auth.fromJson(json.decode(response.body));
} else {
// If that call was not successful, throw an error.
throw Exception('Failed to load post');
}
}
}
我已经尝试将IP更改为here,如所述{{3}},但我没有使用仿真器,因此不确定是否重要。
答案 0 :(得分:0)
在运行express.js服务器的Flutter应用程序中我遇到了同样的问题,但是通过让Expresss服务器在0.0.0.0端口3333上侦听来解决了这个问题,在Flutter应用程序中,我将发布网址更改为Mac IP具有相同端口3333 http://192.168.43.210:3333/api/v02的网络,并且模拟器运行正常
void _mypost() {
Map<String,String> data = {
'token':'2jmj7l5rSw0yVb/vlWAYkK/YBwk=',
'phone':'+256750002991',
};
Map<String,String> headers ={
'Content-Type': 'application/x-www-form-urlencoded'
};
var client = httpClient.Client();
client.post("http://192.168.43.210:3333/api/v02", headers:headers, body:data)
.then((response) => print(" Response Body ${response.body}"))
.catchError((error) => print(" Response Body : ${error}"));
}
答案 1 :(得分:0)
我在Android模拟器上进行了所有尝试,但始终出现相同的问题。
甚至尝试过adb reverse tcp:port tcp:port
然后我使用了一个名为 ngrok 的应用程序,该应用程序重定向到您的 localhost:port 。仍然,我得到同样的错误。
然后,我禁用 Windows防火墙和尤里卡!!!
希望这对某人有帮助。