flutter - 如何检查url链接是否存在并在flutter中获取statusCode?
问题描述
我正在尝试通过 using 检查是否存在 url,statusCode == 200
但是当我尝试使用时await http.get(url)
,它不起作用。我收到了这个错误XMLHttpRequest error
颤振版本
2.5.0
包裹
http: ^0.13.3
我的代码
import 'package:http/http.dart' as http;
final url = Uri.parse('https://www.google.com');
void getStatusCode() async {
http.Response response = await http.get(url);
if (response.statusCode == 200) {
print('exists');
} else {
print('not exists');
}
}
并调用 getStatusCode()
解决方案
这很可能是跨源请求问题,也称为 CORS。您正在网络上运行它。如果你要在 android 或 iOS 上运行它,你会很好,但在 web 中,你不能只向另一个站点发出网络请求,而没有另一个站点允许你通过遵循一些关于 CORS 的协议来这样做。
出现问题是因为您的网页运行的域很可能是 localhost 不是 googl.com,因此它是不同的来源。
此外,200 http 代码用于检查请求是否成功,这是正确的术语,记住这一点很重要。
推荐阅读
- excel - 有没有办法使用字符串引用范围变量?
- java - Spring`RestController`方法注释`@Transactional`,但是“当前没有事务处于活动状态”?
- python-3.x - Google App Engine 上的 run_local_server() 不起作用(errno98 地址已在使用中)
- javascript - 如何正确访问和输出 API 对象和数组数据?
- python - 如何使用python保存内存、pid和进程
- docker - Dockerfile ENTRYPOINT 中的 exec 是什么,为什么一个进程在没有它的情况下启动了两次?
- python - 为什么清除对象后GPU中的内存仍在使用中?
- bash - bash脚本中的逗号(,)语法是什么意思
- command-line - 如何修复termux中无法提前删除libandroid-support:arm(2)的错误
- string - 用单词查找字符串中最大的元素?