用Dart搭建HTTP服务器(1)

基本的HTTP服务器

import 'dart:io';
main(List<String> arguments) {
  //绑定一个IPv4的HttpServer,设置8089端口
  HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8089).then((server){
    //显示服务器地址和端口
    print("Serving at ${server.address}:${server.port}");
    //通过编写HttpResponse对象让服务器响应请求
    server.listen((HttpRequest request){
      //HttpResponse对象用于返回客户端
      request.response
        //获取和设置内容类型(报头)
        ..headers.contentType=new ContentType("text","plain",charset:"utf-8")
        //通过调用Object.toString将Object转换为一个字符串并转成对应编码发送到客户端
        ..write("Hello world! :)")
        //结束与客户端连接
        ..close();
    });
  });
}

执行上面代码,在控制台会打印出服务器的地址与端口号,再访问本机地址http://127.0.0.1:8089/就能访问搭建好的HTTP服务器了!

效果大概就是这样了。

文件服务器

//http_server包要通过Pub下载
library simple_http_server;
import 'dart:io';
//VirtualDirectory可以从根路径获取文件和目录清单
import 'package:http_server/http_server.dart' show VirtualDirectory;
main(List<String> arguments) {
  //设置根路径
  final MY_HTTP_ROOT_PATH = Platform.script.resolve('web').toFilePath();
  //从根路径获取文件和目录清单
  final virDir = new VirtualDirectory(MY_HTTP_ROOT_PATH)
    //是否获取文件和目录清单,为false则不获取
    ..allowDirectoryListing = true;
  HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8089).then((server){
    server.listen((request){
      //将文件和目录清单发送到客户端
      virDir.serveRequest(request);
    });
  });
}

特别要讲的是http_server包的下载,如果你用的是DartEditor的话,可以通过以下方法下载:


上面点OK后要按Ctrl+S保存后才会下载

如果不是DartEditor或者被GFW拦住的话,我把下载好http_server包提供给你们,http://pan.baidu.com/s/1kTiosC3
运行代码后访问本地http://127.0.0.1:8089/,效果是这样的:

时间: 2024-11-14 01:27:34

用Dart搭建HTTP服务器(1)的相关文章

用Dart搭建HTTP服务器(3)

基于URL的请求模式 为了不搞复杂,就简单演示一下 先把需要用到的route包分享出来http://pan.baidu.com/s/1hq1rxI0 import 'dart:io'; import 'package:route/server.dart'; import 'package:route/url_pattern.dart'; //所有模式,例如"/posts" final postsUrl = new UrlPattern(r'/posts\/?'); //单一模式,例如&

用Dart搭建HTTP服务器(2)

设置首页 先在项目下建立web文件,在里面再建两个html文件 然后在dart文件里编写以下代码 import 'dart:io'; import 'package:http_server/http_server.dart' show VirtualDirectory; VirtualDirectory virDir; void directoryHandler(dir, request) { //获取文件的路径 var indexUri = new Uri.file(dir.path).res

急求Linux下局域网内搭建Email服务器方法,!!!在线等!

问题描述 急求Linux下局域网内搭建Email服务器方法,!!!在线等! 5C 我是一个Linux初学者,最近需要搭建一个email邮件服务器,同局域网内主机间可以相互通过这个邮件服务器发邮件,拜托了,这个真的很急!最好有详细的教程和步骤! 解决方案 http://wenku.baidu.com/link?url=KWhkeraxxKKZMNzT6LtX_7BNaGDZXyUgzneTBDgvqebBt5JMpSzCyiNTK7WjXFoqa2j24aERXjTq62OErzw6Hs8ncAc

如何在mac下搭建云服务器?

问题描述 如何在mac下搭建云服务器? 最近学习了android,想自己搭建个云服务器,在mac用什么程序搭建比较好?mac怎么连接云服务器也不是很清楚.或者是推荐看看什么书? 解决方案 http://www.cnblogs.com/wx1993/p/5022670.html

mx-mdaemon如何搭建邮件服务器最好有图片和域名怎么解析txt 什么的

问题描述 mdaemon如何搭建邮件服务器最好有图片和域名怎么解析txt 什么的 最好能全面点 还有 域名怎么解析 TXT mx ip 都怎么样设置 感激不尽!!!怎么常见邮件账号 解决方案 只是改改值就绑定MX.TXT.A记录叻...不要告诉说DNS是啥都不知道额.

在Windows系统下搭建SVN服务器

通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置有些繁琐,如果SVN服务器只有自己使用,那么可以直接把SVN服务器搭建在个人Windows环境下使用. 前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效的管理.这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法.

搭建Web服务器 绿色PHP环境套件e2php

e2php是Windows下的Apache + PHP + MySQL + Zend + eAccelerator + PhpMyAdmin的绿色环境套件,免安装,几秒钟即可搭建Web服务器. 如何使用e2php: 1.先点击下载e2php解压包,解压到任意目录(不要含中文路径). 2.运行目录内的e2php.exe执行文件,在电脑桌面右下方(系统托盘)处可看到该程序图标. 3.鼠标左键单击该程序图标,将会出现菜单选项. 启动Apache,仅启动Apache服务,重启,停止略,启动MySQL,仅

DNS系列二:搭建DNS服务器

在搭建DNS服务器之前先来介绍几个DNS中的术语 1.正向查找区域:用于计算机名到IP地址的映射.当DNS客户端向DNS服务器发起请求要求解析某个计算机名的IP地址时,DNS服务器在正向查找区域中查找,然后返回给DNS客户端相应的IP地址 2.反向查找区域:用于IP地址到计算机名的映射.当DNS客户端向DNS服务器发起请求要求解析某个IP地址对应的计算机名时,DNS服务器在反向区域中查找,然后返回给DNS客户端相应的计算机名 3.主要区域:包含相应DNS命名空间所有的资源记录,是区域中包含的所有

在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v