【问题标题】:How do I check whether an url link exists and get statusCode in flutter?如何检查url链接是否存在并在flutter中获取statusCode?
【发布时间】:2021-11-18 22:32:14
【问题描述】:

我正在尝试使用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()

【问题讨论】:

    标签: flutter flutter-web


    【解决方案1】:

    代码看起来不错,也很实用。如果没有互联网,它将抛出异常Unhandled Exception: SocketException。否则它将打印exists

    【讨论】:

      【解决方案2】:

      这很可能是跨源请求问题,也称为 CORS。您正在网络上运行它。如果你要在 android 或 iOS 上运行它,你会很好,但在 web 中,你不能只向另一个站点发出网络请求,而没有另一个站点允许你通过遵循一些关于 CORS 的协议来这样做。

      出现问题是因为运行您的网页的域最有可能是 localhost 不是 googl.com,因此它是不同的来源。

      此外,200 http 代码用于检查请求是否成功,这是正确的术语,记住这一点很重要。

      【讨论】:

        猜你喜欢
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-11
        • 2022-01-20
        • 2020-07-05
        • 2014-04-16
        • 2012-10-24
        相关资源
        最近更新 更多