когда я использую библиотеку dart: io на веб-сайте флаттера, при отладке появляется предупреждение. Подобно этому
[ПРЕДУПРЕЖДЕНИЕ] build_web_compilers: entrypoint on web / main.dart: пропуск компиляции retgoo_internal |web / main.dart с ddc, потому что некоторые из его транзитивных библиотек имеют зависимости sdk, которые не поддерживаются на этой платформе:
retgoo_internal | lib / protocol / http_aiframework.dart
, но когда яиспользуйте import 'package: flutter_web / io.dart';
есть код ошибки, в коде .transform
вот код http_aiframework.dart
import 'dart:async';
import 'dart:convert';
import 'dart:io';
//import 'package:flutter_web/io.dart';
import '../main.dart';
typedef HttpProgressListener(int totalBytes, int receivedBytes, bool done);
class Http {
static String baseURL;
static bool loadAccessToken() {
return accessToken != null;
}
static bool setAccessToken(String token) {
accessToken = token;
return accessToken != null;
}
static bool removeAccessToken() {
accessToken = null;
return accessToken == null;
}
static _processHeader(
{HttpClientRequest request, Map<String, dynamic> headers}) {
if (headers != null) {
headers.forEach((key, value) {
request.headers.add(key, value);
});
}
if (accessToken != null) {
request.headers.set("Authorization", "Bearer " + accessToken);
}
}
static _processResponse(
{HttpClientResponse response,
HttpProgressListener progressListener}) async {
final int totalBytes = response.contentLength;
int receivedBytes = 0;
String body = await response
.transform( //this is the error code when I use import 'package: flutter_web / io.dart';
StreamTransformer.fromHandlers(
handleData: (data, sink) {
sink.add(data);
if (progressListener != null) {
receivedBytes += data.length;
progressListener(totalBytes, receivedBytes, false);
}
},
handleDone: (sink) {
sink.close();
if (progressListener != null) {
progressListener(totalBytes, receivedBytes, true);
}
},
),
)
.map((v) => utf8.decoder.convert(v))
.join();
return body;
}
static getData({
String baseURL,
String endpoint,
Map<String, dynamic> headers,
HttpProgressListener downloadProgressListener,
dynamic data,
}) async {
final client = HttpClient();
client.userAgent = "AIFramework/";
client.connectionTimeout = Duration(seconds: 30);
HttpClientRequest request;
String mBaseURL = baseURL ?? Http.baseURL;
var uri = Uri.parse("$mBaseURL$endpoint");
if (data == null) {
request = await client.getUrl(uri);
} else {
request = await client.postUrl(uri);
}
_processHeader(
request: request,
headers: headers,
);
if (data != null) {
String payload = json.encode(data);
request.write(payload);
}
final response = await request.close();
if (response.statusCode == 200) {
return json.decode(
await _processResponse(
response: response,
progressListener: downloadProgressListener,
),
);
}
return null;
}
}