6

Dartでカールのような機能を実現するための最良の方法を探しています。たとえば、例として、google.comWebコンテンツを取得して出力する方法。

ここに示すように、シェルを介して呼び出すことができることがわかりましたが、それは理想的なアプローチではないようです。

import 'dart:io';

main() {
  var f = new File(new Options().executable);
  Process.start('curl', 
                ['--dump-header', '/tmp/temp_dir1_M8KQFW/curl-headers', '--cacert',
                 '/Users/ager/dart/dart/third_party/curl/ca-certificates.crt', '--request', 
                 'POST', '--data-binary', '@-', '--header', 'accept: ', '--header', 'user-agent: ' ,
                 '--header', 'authorization: Bearer access token', '--header', 
                 'content-type: multipart/form-data', '--header',
                 'content-transfer-encoding: binary', '--header',
                 'content-length: ${f.lengthSync()}', 'http://localhost:9000/upload']).then((p) {
    f.openInputStream().pipe(p.stdin);
    p.stdout.pipe(stdout);
    p.stderr.pipe(stderr);
    p.onExit = (e) => print(e);
  });
}

APIも調べましたが、ここで役立つものは見つかりませんでした。

4

1 に答える 1

10

Dart IOライブラリには、HttpClient基本的にあなたが探しているものが付属しています。ただし、おそらくhttp代わりにPubパッケージを使用する必要があります。依存関係ファイルに追加します。

dependencies:
  http: any

実行pub installしてから:

import 'package:http/http.dart' as http;

main() {
  http.read('http://google.com').then((contents) {
    print(contents); // Here we output the contents of google.com.
  });
}
于 2012-12-23T17:36:59.807 に答える