我有一个从Firebase请求json数据的应用程序。我为代码失败实现了一个条件,但是当缺少连接时,请求不会超时。有没有一种方法可以添加超时以使AlertDialog出现?
return http
.post('https://flutter**********.com/products.json',
body: json.encode(productData))
.then((http.Response response) {
if(response.statusCode != 200 && response.statusCode != 201) {
_isLoading = false;
notifyListeners();
return false;
}
当收到不同的statusCode时,返回
false
,然后显示一个AlertDialog,允许用户重试。在故意破坏代码的情况下出现,但在缺乏连通性的情况下则不会出现。谢谢
最佳答案
如果请求超时(例如,因为没有连接),则服务器无响应。试试这个:
try {
http.post('https://flutter**********.com/products.json',
body: json.encode(productData))
.then((http.Response response) {
if(response.statusCode != 200 && response.statusCode != 201) {
_processTimeout();
return false;
};
} on TimeoutException catch (_) {
_processTimeout();
return false;
}
在
_processTimeout()
中添加需要发生的一切。
关于http - 如果http请求失败,如何添加超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56242964/