5

HTTPRequest を使用することから始めましたdart:htmlが、コンソール アプリケーションではこれが不可能であることにすぐに気付きました。Google で検索しましたが、目的のものが見つかりません (HTTP サーバーしか見つかりません)。コンソール アプリケーションを介して通常の HTTP 要求を送信する方法はありますか?

それとも、ソケットを使用して独自の HTTP 要求を実装する方法に行く必要がありますか?

4

2 に答える 2

11

IO ライブラリには、HTTP リクエストを作成するためのHttpClientクラスがあります。

import 'dart:io';

void main() {
  HttpClient client = new HttpClient();
  client.getUrl(Uri.parse("http://www.dartlang.org/"))
    .then((HttpClientRequest request) {
        return request.close();
      })
    .then(HttpBodyHandler.processResponse)
    .then((HttpClientResponseBody body) {
        print(body.body);
      });
}

更新: HttpClient はかなり低レベルであり、このような単純なものには少し扱いに​​くいため、コアの Dart チームは、物事を単純化するpubパッケージも作成しました。http

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

void main() {
  http.get('http://pub.dartlang.org/').then((response) {
    print(response.body);
  });
}

cryptoパッケージが依存関係であることがわかったので、pubspec.yaml次のようになります。

name: app-name
dependencies:
  http: any
  crypto: any
于 2013-06-19T18:14:40.077 に答える
2

サーバー側SDK ライブラリの一部であるHttpClientを探します。dart:io

上記にリンクされている API ドキュメントからの例:

HttpClient client = new HttpClient();
client.getUrl(Uri.parse("http://www.example.com/"))
    .then((HttpClientRequest request) {
      // Prepare the request then call close on it to send it.
      return request.close();
    })
    .then((HttpClientResponse response) {
      // Process the response.
    });
于 2013-06-19T18:15:10.443 に答える