2012-12-23 15 views
6

Tôi đang tìm cách tốt nhất để có được chức năng giống như cuộn tròn ở Dart. Ví dụ: cách tìm nạp nội dung web google.com và xuất nó như một ví dụ.Chức năng giống như Curl ở Dart

tôi thấy rằng tôi có thể gọi nó qua the shell as shown here, tuy nhiên đó không có vẻ như là cách tiếp cận lý tưởng:

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); 
    }); 
} 

Tôi cũng nhìn vào API và không thể tìm thấy bất cứ điều gì để giúp tôi ở đây.

Trả lời

8

Thư viện Dart IO đi kèm với một HttpClient mà về cơ bản là những gì bạn đang tìm kiếm. Tuy nhiên, có lẽ bạn nên sử dụng gói http Pub thay thế. Thêm nó vào phụ thuộc tập tin của bạn:

dependencies: 
    http: any 

Run pub install và sau đó chỉ cần:

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. 
    }); 
}