什么是得到命令行镖HTTP响应的最简单的方法?(What is the easiest way to

2019-08-18 10:42发布

我写在镖命令行脚本。 什么是访问(和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?
标签: dart