微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 http.get flutter 和有效的 api 获取数据

如何解决无法使用 http.get flutter 和有效的 api 获取数据

背景

我有一个 API (http),我可以通过 Postman 使用 GET 方法访问它,没有任何问题。 我想使用 http 包从这个 API 为我的 Flutter 应用程序获取数据。

问题

在进行网络请求时,使用 http 包的 http.get() 方法,如下所示,我无法从 API 中获取数据。

Future<Product> fetchProducts(String barcodeId) async {
var vPath = '/products/' + barcodeId;
var vUri = new Uri(
  scheme: 'http',host: 'product.acirfa.tech',port: 3000,path: vPath,);
// /products/224213463241
print(vPath);
// http://product.acirfa.tech:3000/products/224213463241
print(vUri);
var response = await http.get(vUri);
print(response);
if (response.statusCode == 200) {
  print('OK');
} else {
  print('KO');
}}

我已经打印出作为参数传递给 http.get() 方法的 URI (vUri),通过单击它,我通过浏览器获取数据。未执行变量“response”的打印输出,这让我认为问题来自 vUri。虽然,我尝试使用 URI Http 构造函数 [Uri.http()] 创建 URI,但我看到了相同的行为。

预期结果

我希望能看到打印出来的内容

对我哪里出错有什么想法吗?谢谢:)

解决方法

final _uri = Uri.http('www.domainName.com','furtherLink/page.php',{'key': '$value'});

final response = await http.get(
        _uri,headers: {'authorization':'$_auth'}
).catchError((error) {
  throw error;
});

if (response.statusCode == 200) {
  print('OK');
} else {
  print('KO');
}}

由于您使用的是 http 而不是 https,因此它被认为是不安全的。确保通过权限。

注意:如果使用不安全的网络,将很难在 Android 和 IOS 上发布您的应用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。