gpt4 book ai didi

macos - SocketException : Connection failed (OS Error: Operation not permitted, errno = 1) 在 macOS 上使用 flutter 应用程序

转载 作者:行者123 更新时间:2023-12-03 18:36:13 31 4
gpt4 key购买 nike

我的 Flutter 应用程序中有以下代码,其中 MyDataLoader 是一个从 main.dart 启动的小部件
代码:

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

class MyDataLoader extends StatefulWidget {
@override
_MyDataLoaderState createState() => _MyDataLoaderState();
}

class _MyDataLoaderState extends State<MyDataLoader> {
void getData() async {
final response = await http.get('https://jsonplaceholder.typicode.com/albums/1');
print(response);
}

@override
void initState() {
super.initState();
getData();
}

@override
Widget build(BuildContext context) {
return Scaffold(
body: Text('MyDataLoader screen'),
);
}
}
问题:
上面的代码灵感来自 https://flutter.dev/docs/cookbook/networking/fetch-dataMyDataLoader 小部件加载时出现以下错误:

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception:SocketException: Connection failed (OS Error: Operation not permitted,errno = 1), address = jsonplaceholder.typicode.com, port = 443


以上错误当然是因为我的小部件加载时调用了以下代码行。

final response = awaithttp.get('https://jsonplaceholder.typicode.com/albums/1');


但是 ,如果我在浏览器上打开 https://jsonplaceholder.typicode.com/albums/1 ,我可以看到它有我希望在响应中收到的虚拟 json。这意味着我可以很好地连接到互联网。
我在 macOS Big Sur 版本 11.1 上运行我的应用程序。
我究竟做错了什么?我是否需要 为我的应用程序声明一些权限 才能从 macOS 环境访问互联网?

最佳答案

macOS 需要您请求特定的权利才能访问网络。为此,请打开 macos/Runner/DebugProfile.entitlements 并添加以下键值对。

<key>com.apple.security.network.client</key>
<true/>
然后在 macos/Runner/Release.entitlements 中做同样的事情。
您可以在 Desktop support for Flutter 文档中阅读更多相关信息。

关于macos - SocketException : Connection failed (OS Error: Operation not permitted, errno = 1) 在 macOS 上使用 flutter 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65458903/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com