Zer*_*ive 12 http dart flutter
http在我的 flutter 应用程序中使用包时,我遇到了一个小问题。我正在 localhost 上进行测试,当我使用 http.post 在数据库中发布某些内容时,它不会在服务器未运行时返回默认时间(即我认为 60 秒)的响应。当我在超时内启动 apache 和 mysql 服务时,它会在服务器中发布数据。有没有办法减少dart http包中http请求的超时时间?或者有什么替代解决方案?
Sho*_*din 15
我在 http.post 中测试超时,它对我有用
final response = await http.post(Url).timeout(Duration(seconds: 5));
Run Code Online (Sandbox Code Playgroud)
我希望这个对你有用
小智 8
您有两种选择。
减少 HttpClient 的超时
final client = new HttpClient();
client.connectionTimeout = const Duration(seconds: 10);
Run Code Online (Sandbox Code Playgroud)
这将适用于同一客户提出的所有请求。如果请求超过此超时,SocketException则会抛出 a。
设置每个请求超时
您可以使用该方法在任何 Future 上设置超时Future.timeout。
try {
..
final request = await client.get(...);
final response = await request.close().timeout(const Duration(seconds: 10));
// more code
} on TimeoutException catch (e) {
// handle timeout
}
Run Code Online (Sandbox Code Playgroud)