我正在与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上按预期工作。
答案 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',
},