为何Postman可访问同一地址,Flutter代码却报OS Error: No address associated with hostname?
Flutter调用Marvel API报错:OS Error: No address associated with hostname, errno = 7
问题代码
class MarvelRepository { Future<CharactersModel> fetchCharacters() async { var dio = Dio(); var timestamp = DateTime.now().millisecondsSinceEpoch.toString(); var publicKey = dotenv.get("MARVELPUBLICKEY"); var privateKey = dotenv.get("MARVELAPIKEY"); var hash = _generateMD5(timestamp + privateKey + publicKey); var query = "ts=$timestamp&apikey=$publicKey&hash=$hash"; var res = await dio.get("https://gateway.marvel.com/v1/public/characters?$query"); var charactersModel = CharactersModel.fromJson(res.data); return charactersModel; } _generateMD5(String data) { var content = const Utf8Encoder().convert(data); var md5 = crypto.md5; var digest = md5.convert(content); return hex.encode(digest.bytes); } }
问题描述
调用上述Flutter代码访问Marvel API时,出现以下情况:
- Postman可正常访问同一接口地址,但代码运行时抛出OS Error: No address associated with hostname, errno = 7错误(附错误截图,显示该报错信息)
- 已确认密钥及密钥拼接顺序无误
- 已在AndroidManifest中添加互联网权限:
<uses-permission android:name="android.permission.INTERNET"/> - 测试设备连接的WiFi可正常访问互联网
解决方案
此为Flutter 3.13.0版本的已知待修复Bug,解决方法是取消勾选IDE中的“uncaught exceptions”选项。
内容的提问来源于stack exchange,提问作者Caio
相关产品推荐
相关产品推荐

