我正在使用Dart编写一个命令行脚本。最简单的访问(和获取)HTTP资源的方法是什么?
dart:io
库具有HTTP客户端的基本操作(请参见HttpClient),但是http package可以更方便地进行GET、POST等操作。name: sample_app
description: My sample app.
dependencies:
http: any
安装该包。可以通过命令行或Dart编辑器运行:
pub install
导入包:
// inside your app
import 'package:http/http.dart' as http;
发起GET请求。 get()
函数返回一个 Future
对象。
http.get('http://example.com/hugs').then((response) => print(response.body));
在使用get()
函数的方法中,最佳实践是返回Future:
Future getAndParse(String uri) {
return http.get('http://example.com/hugs')
.then((response) => JSON.parse(response.body));
}
很不幸,我找不到任何官方文档。因此,我不得不查看代码(其中有很好的注释):https://code.google.com/p/dart/source/browse/trunk/dart/pkg/http/lib/http.dart
这是我找到的最短的代码
curl -sL -w "%{http_code} %{url_effective}\\n" "URL" -o /dev/null
这里,-s 静默 curl 的进度输出,-L 跟随所有重定向,-w 使用自定义格式打印报告,-o 重定向 curl 的 HTML 输出到 /dev/null。
以下是其他特殊变量,如果您想要更多地自定义输出: