在使用 Fluttershttp请求库时,我想知道是否有一种简单的方法可以检查请求是否成功,而无需检查状态代码。
我看到的大多数代码示例(包括官方代码示例)都会执行以下操作:
http.Response response = await http.Client().get(...);
if (response.statusCode == 200) {
...
}
Run Code Online (Sandbox Code Playgroud)
然而,这些示例忽略了这样一个事实:所有以 开头的 HTTP 状态代码都2XX被认为是成功的。例如201代表201 Created.
我知道 pythonhttp库有一个简单的ok标志,所以在 python 中可以做这样的事情:
if response.ok:
...
Run Code Online (Sandbox Code Playgroud)
flutter/dart 中是否有类似的功能,或者我是否必须实施手动检查?
Chr*_*ore 16
您可以创建一个扩展方法来轻松完成此操作:
extension IsOk on http.Response {
bool get ok {
return (statusCode ~/ 100) == 2;
}
}
Run Code Online (Sandbox Code Playgroud)
通过添加上面的扩展,您可以使用response.ok您喜欢的相同响应语法。
此扩展的工作原理是通过除以 100 进行截断并将结果与 2 进行比较来隔离第 100 位数字。
| 归档时间: |
|
| 查看次数: |
5544 次 |
| 最近记录: |