我写在镖命令行脚本。 什么是访问(和GET)的HTTP资源最简单的方法?
Answer 1:
使用HTTP包 ,方便的命令行访问HTTP资源。 虽然核心dart:io
库中有HTTP客户端的原语(见HttpClient的 ),在HTTP包使得它更容易GET,POST等。
首先,添加http你pubspec的依赖关系:
name: sample_app
description: My sample app.
dependencies:
http: any
安装程序包。 在命令行上或经由达特编辑器运行此:
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 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
Answer 2:
这是最短的代码,我能找到
curl -sL -w "%{http_code} %{url_effective}\\n" "URL" -o /dev/null
在这里,-s沉默卷曲的进度输出,-L遵循一切如故重定向,-w打印使用自定义格式的报告,并-o重定向卷曲的HTML输出到/ dev / null的。
以下是可用的情况下,你想自定义输出更多的一些其他的特殊变量:
- url_effective
- HTTP_CODE
- http_connect
- TIME_TOTAL
- time_namelookup
- time_connect
- time_pretransfer
- time_redirect
- time_starttransfer
- size_download
- size_upload
- size_header
- size_request
- speed_download
- speed_upload
- 内容类型
- num_connects
- NUM_REDIRECTS
- ftp_entry_path
文章来源: What is the easiest way to get an HTTP response from command-line Dart?