虽然在客户端 ( dart:html
) 上获取 URL 很简单,但服务器端 ( dart:io
) 没有方便的getString
方法。
如何简单地将 URL 文档加载为字符串?
使用将响应正文作为字符串返回 的http
包和函数:read
import 'package:http/http.dart' as http;
void main() {
http.read("http://httpbin.org/").then(print);
}
这应该在服务器上工作
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));
}
这将有助于:
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);
这可以完成工作,但请注意,这不是一个强大的解决方案。另一方面,如果您所做的不仅仅是命令行脚本,那么无论如何您可能需要的不仅仅是这个。