【发布时间】:2021-07-19 11:43:08
【问题描述】:
上下文
我有一个 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),通过单击它,我可以通过浏览器获取数据。未执行变量“响应”的打印,这让我认为问题来自 vUri。虽然,我尝试使用 URI Http 构造函数 [Uri.http()] 创建 URI,但我看到了相同的行为。
预期结果
我希望能看到打印出来的结果
对我哪里出错有任何想法吗?谢谢:)
【问题讨论】:
-
使用:
Uri.parse('http://product.acirfa.tech:3000/products/224213463241') -
我已经尝试将其直接放入 http.get() 但没有奏效。感谢您的建议!
-
可能是Android 9或更高版本的原因,您应该尝试stackoverflow.com/questions/51902629/…