Dart 从HttpClient请求返回响应正文

Dart 从HttpClient请求返回响应正文,dart,flutter,Dart,Flutter,这是我的密码: Future<String> fetch(url) async { Directory tempDir = await getTemporaryDirectory(); String tempPath = tempDir.path; var cj = new PersistCookieJar(tempPath); HttpClient client = new HttpClient(); var request = awa

这是我的密码:

  Future<String> fetch(url) async {
    Directory tempDir = await getTemporaryDirectory();
    String tempPath = tempDir.path;
    var cj = new PersistCookieJar(tempPath);

    HttpClient client = new HttpClient();
    var request = await client.getUrl(Uri.parse(url));
    request.cookies.addAll(cj.loadForRequest(Uri.parse(url)));
    var response = await request.close();
    cj.saveFromResponse(Uri.parse(url), response.cookies);
        // I tried using .toString() but it returns an " Instance of '_HttpClientResponse' "
    return response.toString();
  }
Future fetch(url)异步{
目录tempDir=await getTemporaryDirectory();
字符串tempPath=tempDir.path;
var cj=新的PersistCookieJar(tempPath);
HttpClient=新的HttpClient();
var request=await client.getUrl(Uri.parse(url));
request.cookies.addAll(cj.loadForRequest(Uri.parse(url));
var response=wait request.close();
cj.saveFromResponse(Uri.parse(url)、response.cookies);
//我尝试使用.toString(),但它返回一个“'\u HttpClientResponse'的实例”
返回response.toString();
}

我花了几个小时试图找到一种返回回复正文的方法,但没有成功,请有人帮助我。

没关系,我已经解决了它

我使用了以下代码:

  Future<String> fetch(url) async {
    Directory tempDir = await getTemporaryDirectory();
    String tempPath = tempDir.path;
    var cj = new PersistCookieJar(tempPath);

    HttpClient client = new HttpClient();
    var request = await client.getUrl(Uri.parse(url));
    request.cookies.addAll(cj.loadForRequest(Uri.parse(url)));
    var response = await request.close();
    cj.saveFromResponse(Uri.parse(url), response.cookies);
    // I had to transform the response for it to work
    var body = await response.transform(Utf8Decoder(allowMalformed: true)).join();
    return body;
  }
Future fetch(url)异步{
目录tempDir=await getTemporaryDirectory();
字符串tempPath=tempDir.path;
var cj=新的PersistCookieJar(tempPath);
HttpClient=新的HttpClient();
var request=await client.getUrl(Uri.parse(url));
request.cookies.addAll(cj.loadForRequest(Uri.parse(url));
var response=wait request.close();
cj.saveFromResponse(Uri.parse(url)、response.cookies);
//我必须改变反应才能让它起作用
var body=wait response.transform(Utf8Decoder(allowMalformed:true)).join();
返回体;
}