在客户端(dart:html
)上提取的网址为straightforward时,服务器端(dart:io
)没有方便的getString
方法。
如何简单地将URL文档加载为String?
答案 0 :(得分:3)
使用http
包和read
函数将响应正文作为字符串返回:
import 'package:http/http.dart' as http;
void main() {
http.read("http://httpbin.org/").then(print);
}
答案 1 :(得分:1)
这应该在服务器上运行
import 'package:http/http.dart' as http;
void main(List<String> args) {
http.get("http://www.google.com").then((http.Response e) => print(e.statusCode));
}
答案 2 :(得分:0)
这会有所帮助:
import "dart:io";
import "dart:async";
import "dart:convert";
Future<String> fetch(String url) {
var completer = new Completer();
var client = new HttpClient();
client.getUrl(Uri.parse(url))
.then((request) {
// Just call close on the request to send it.
return request.close();
})
.then((response) {
// Process the response through the UTF-8 decoder.
response.transform(const Utf8Decoder()).join().then(completer.complete);
});
return completer.future;
}
您可以像这样使用此方法/函数:
fetch("http://www.google.com/").then(print);
这可以完成工作,但请注意,这不是 一个强大的解决方案。另一方面,如果你做的不仅仅是命令行脚本,那么你可能还需要更多。