我首先尝试在dart:html中使用HTTPRequest,但很快意识到在控制台应用程序中这是不可能的。我已经做了一些Google搜索,但是找不到我要的内容(仅找到HTTP Server),有没有一种方法可以通过控制台应用程序发送正常的HTTP请求?

还是我必须使用套接字的方法来实现我自己的HTTP请求?

最佳答案

IO库中有一个HttpClient类,用于发出HTTP请求:

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

关于http - 在Dart控制台应用程序中,是否存在不需要DOM访问的HTTP请求库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17197983/

10-13 07:36