Flutter:HTTP get请求体是空的

时间:2018-03-13 23:58:04

标签: http request dart flutter

我正在与Flutter玩一下并尝试执行http get请求。虽然我总是在回复中得到一个空洞的身体。

例如,使用以下代码:

import 'package:http/http.dart' as http;

[...]

http.Client client = new http.Client();
client
    .get("https://www.googleapis.com/books/v1/volumes?q=$text")
    .then((http.Response response) {
  print(response.statusCode);
  print(response.body);
  setState(() {
    _isLoading = false;
  });
});

我得到以下结果:

200
{

你有什么想法吗?

先谢谢!

修改

似乎问题只发生在iOS设备上。它在Android上按预期工作。

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码吗?代码未经测试。

import 'dart:io';
import 'dart:convert';

main() async {
  try {
    var client = new HttpClient();
    String text = "example";

    var uri = Uri.parse("https://www.googleapis.com/books/v1/volumes?q=$text");

    var request = await client.getUrl(uri);
    var response = await request.close();
    var responseBody = await response.transform(UTF8.decoder).join();
    print(responseBody);
  } catch (exception) {
    print(exception);
  }
}

答案 1 :(得分:0)

尝试使用debugPrint()而不是print()。它会将所有正文打印到控制台

https://flutter.io/debugging/#print-and-debugprint-with-flutter-logs

答案 2 :(得分:0)

可能您忘记了标题,例如:

headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'X-Requested-With': 'XMLHttpRequest',
    },