我正在嘗試從網站獲取資料
void main() async {
var resp = await http.get(
Uri.parse('https://m.example.com/example'),
headers: {
'User-Agent':
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'
},
);
print(resp.body);
}
但是當我將此代碼包裝到一個函式中時,resp 回傳 null
Future getLiveHtml(String url) async {
var resp = await http.get(
Uri.parse(url),
headers: {
'User-Agent':
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'
},
);
return resp.body;
}
如何解決?
uj5u.com熱心網友回復:
您應該在方法Future<String>描述中指定回傳的型別,如下所示:
library shfl;
import 'dart:convert';
import 'package:http/http.dart' as http;
static Future<String> getLiveHtml(String url) async {
var resp = await http.get(
Uri.parse(url),
headers: {
'User-Agent':
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'
},
);
return resp.body;
}
然后用這樣的陳述句在async函式中呼叫它:await
import 'package:flutter_test/flutter_test.dart';
import 'package:shfl/shfl.dart';
void main() {
test('prints html from google', () async {
var rez = await Stuff.getLiveHtml("https://google.com/");
print(rez);
});
}
uj5u.com熱心網友回復:
http您的專案使用什么版本的包?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442449.html
上一篇:限制按鈕寬度
