我正在尝试使用基于GCP构建的云功能,如下所示。目的是获得一个包含时间戳,图像和源的JSON,这些JSON将被转换为Map对象。 SourceController,datetime和_imageUrl是输出,应该将输入作为url函数参数:
parser(String url) async {
var function_url = <CLOUD FUNCTION URL>;
try {
var request = await HttpClient.getUrl(Uri.parse(function_url));
var response = await request.close();
if (response.statusCode == HttpStatus.ok) {
var json = await response.transform(utf8.decoder).join();
Map data = jsonDecode(json) as Map;
sourceController = data['source'];
publishedAt = data['datetime'];
_imageUrl = data['image'];
} else {
print('Error running parser:\nHttp status ${response.statusCode}');
}
} catch (exception) {
print('Failed invoking the parser function.');
}
尽管将请求的数据类型更改为dynamic,var等,但我仍然收到以下错误消息。
Instance member 'getUrl' can't be accessed using static access
尽管我已经检查了其他可以正常工作的代码,但我真的很感谢有关getUrl为什么不工作的帮助。
此外,我根本不知道我们该如何将参数传递给我们的云函数?
此外,如果有一个涉及cloud_functions软件包的解决方案,我也很满意-我也尝试过该方法,但也没有运气。
答案 0 :(得分:0)
根据here,您需要实例化 HttpClient
,以访问该方法,因为它不是静态方法:
HttpClient client = new HttpClient();
client.getUrl(Uri.parse("http://www.example.com/"))