Dart HTTPClient响应查询

Dart HTTPClient响应查询,dart,httpclient,synchronous,Dart,Httpclient,Synchronous,我想使以下功能同步。一旦流被完全读取,就需要调用“onDataLoaded”。请建议需要做哪些更改 String JsonContent=“”; 新建HttpClient().getUrl(Uri.parse(Uri)) .然后((HttpClientRequest请求) { request.headers.removeAll(HttpHeaders.ACCEPT_编码); 返回请求。close(); }) .然后((HttpClientResponse响应) { response.tra

我想使以下功能同步。一旦流被完全读取,就需要调用“onDataLoaded”。请建议需要做哪些更改

String JsonContent=“”;
新建HttpClient().getUrl(Uri.parse(Uri))
.然后((HttpClientRequest请求)
{
request.headers.removeAll(HttpHeaders.ACCEPT_编码);
返回请求。close();
})
.然后((HttpClientResponse响应)
{   
response.transform(UTF8.decoder).listen((内容){
JsonContent=contents.toString();
印刷品(JsonContent);
//onDataLoaded(JsonContent);
});          
});
这应该行得通

导入'dart:io';
导入“dart:convert”显示UTF8;
空干管(args){
字符串JsonContent=“”;
新建HttpClient().getUrl(Uri.parse(Uri))
.然后((HttpClientRequest请求)
{
request.headers.removeAll(HttpHeaders.ACCEPT_编码);
返回请求。close();
})
.然后((HttpClientResponse响应)
{
response.transform(UTF8.decoder).listen((内容){
JsonContent=contents.toString();
印刷品(JsonContent);
//onDataLoaded(JsonContent);
},onDone:()=>onDataLoaded(JsonContent));
});
}
无效onDataLoaded(字符串jsonContent){
印刷品(jsonContent);
}

是否有一种方法可以让onDataLoaded在从主(args)终止之前先执行。我在你的问题中看到了这一点,但不确定你是否真的这么想,因为另一部分说你想在检索完成时调用
onDataLoaded
。否,我尚未找到服务器的同步版本的
getUrl
。客户端有
request.open(“GET”,url,async:false)
See在发布我的查询之前也尝试了这段代码。相同的行为-main()终止,然后打印内容。异步执行将闭包放入事件队列中,当当前执行线程(main)完成时,将执行队列中的下一项(getUrl)。