检查 URL 是不是存在于 Flutter 中时出错

Posted

技术标签:

【中文标题】检查 URL 是不是存在于 Flutter 中时出错【英文标题】:Error while checking if URL is exists in Flutter检查 URL 是否存在于 Flutter 中时出错 【发布时间】:2022-01-20 01:47:59 【问题描述】:

我想检查 url 是否存在。

功能:

Future _checkUrl(String url) async 
  http.Response _urlResponse =  await http.get(Uri.parse(url));
  if (_urlResponse.statusCode == 200) 
   return true;
  
  else 
    return false;
  

呼叫:

_checkUrl("https://stackoverf").then((value) => 
  print(value)
);

当我给https://fonts.google.com/?category=Sans+Serif(返回真)或https://***.com/qu(返回假)时,它会起作用。

但是当我尝试使用无效的 https://stackoverf 时,它给了我 [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: SocketException: Failed host lookup: 'stackoverf' (OS Error: No address associated with hostname, errno = 7)

如何使 _checkUrl 在此调用中返回 false?

【问题讨论】:

您是否尝试过捕获异常而不是让它不处理? 参考这里:URL CHECK 【参考方案1】:

这样的东西能满足你的需要吗?

Future<bool> _checkUrl(String url) async 
  try 
    http.Response _urlResponse =  await http.get(Uri.parse(url));
    return _urlResponse.statusCode == 200;
    // return _urlResponse.statusCode < 400 // in case you want to accept 301 for example
   on SocketException 
    return false;
  

【讨论】:

以上是关于检查 URL 是不是存在于 Flutter 中时出错的主要内容,如果未能解决你的问题,请参考以下文章

C#。当我尝试检查用户是不是存在于我的 SQL 数据库中时,我的 Windows 窗体应用程序崩溃

如何检查文档是不是存在于flutter中?

Flutter & Firebase:如何检查某个项目是不是存在于 Firebase 文档中的数组中

仅当用户存在于 Firebase 中时 Flutter google 登录?

当用户在flutter中使用otp方法登录时,如何检查用户详细信息是不是已经存在于firebase中? [复制]

如何检查图片是不是存在于url