Dio 像这样发布到服务器:
dio.post<ResponseBody>(
'url',
data: {...},
options: Options(
responseType: ResponseType.stream,
headers: {
"Authorization": TokenUtil.token,
"Accept": "*/*"
}
)
).then((res) => {
res.data?.stream
.transform(unit8Transformer)
.transform(const Utf8Decoder())
.transform(const LineSplitter()).listen((event) {
if (event.contains('data:')) {
print('current Data:$event');
_counterSink.add(event);
}
}, onDone: () => {
setState(() {
currentState = ConnectionState.done;
})
}),
});
StreamBuilder 是:
StreamBuilder(stream: _counterStream, initialData: '', builder: (context, AsyncSnapshot snapshot) {
print('received Data:${snapshot.data}');
})
打印这个:所以我不知道为什么有时无法接收currentData,甚至counterSink不添加它。 参考图片
请帮我解决一下。谢谢
您的响应,内容参数,有时返回一个列表,有时返回一个字符串。 这可能会在映射响应时导致问题。
实现 onError 方法并打印/记录它。它应该为您提供有关问题所在的更多信息