如何解决无法使用 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 举报,一经查实,本站将立刻删除。