如何从Dart服务器(dart:io)获取URL?

时间:2013-12-11 13:57:47

标签: dart dart-io

在客户端(dart:html)上提取的网址为straightforward时,服务器端(dart:io)没有方便的getString方法。

如何简单地将URL文档加载为String?

3 个答案:

答案 0 :(得分:3)

使用http包和read函数将响应正文作为字符串返回:

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

void main() {
  http.read("http://httpbin.org/").then(print);
}

答案 1 :(得分:1)

这应该在服务器上运行

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

void main(List<String> args) {
  http.get("http://www.google.com").then((http.Response e) => print(e.statusCode));
}

答案 2 :(得分:0)

这会有所帮助:

import "dart:io";
import "dart:async";
import "dart:convert";

Future<String> fetch(String url) {
  var completer = new Completer();
  var client = new HttpClient();
  client.getUrl(Uri.parse(url))
    .then((request) {
      // Just call close on the request to send it.
      return request.close();
    })
    .then((response) {
      // Process the response through the UTF-8 decoder.
      response.transform(const Utf8Decoder()).join().then(completer.complete);
    });
  return completer.future; 
}

您可以像这样使用此方法/函数:

fetch("http://www.google.com/").then(print);

这可以完成工作,但请注意,这不是 一个强大的解决方案。另一方面,如果你做的不仅仅是命令行脚本,那么你可能还需要更多。