用Dart搭建HTTP服务器(3)
来源:互联网 发布:怎样成为淘宝主播 编辑:程序博客网 时间:2024/05/23 23:23
基于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\/?');//单一模式,例如“/post/24”final postUrl = new UrlPattern(r'/post/(\d+)\/?');//处理回调所有模式servePosts(req) { req.response.write('All blog posts'); req.response.close();}//处理回调单一模式servePost(req) { //解析URL路径或路径+片段 var postId = postUrl.parse(req.uri.path)[0]; req.response.write('Blog post $postId'); req.response.close();}//处理回调非法URLserveNotFound(req) { req.response.statusCode = HttpStatus.NOT_FOUND; req.response.write('Not found'); req.response.close();}main(List<String> arguments) { HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8089).then((server) { var router = new Router(server) //匹配请求的URL与方法,调用对应的处理方法 ..serve(postsUrl, method: 'GET').listen(servePosts) ..serve(postUrl, method: 'GET').listen(servePost) //如果都无法匹配,调用对应的处理方法 ..defaultStream.listen(serveNotFound); });}
运行代码,先试试直接访问
因为URL无法匹配,所以直接调用了非法URL的处理方法
接着再用合法URL访问,先是所有模式/posts
然后再是单一模式/post/数字
它们分别对应
这就是基于URL的访问模式了
0 0
- 用Dart搭建HTTP服务器(3)
- 用Dart搭建HTTP服务器(1)
- 用Dart搭建HTTP服务器(2)
- Dart的HTTP请求和响应(1)
- Dart的HTTP请求和响应(2)
- Python3.3搭建简单的HTTP服务器
- 用nodejs搭建简易的HTTP服务器
- 用java搭建自己的http服务器
- 用Python一键搭建Http服务器
- git 服务器搭建 (git smart http)
- nodejs搭建http服务器(单一响应)
- 搭建SVN服务器(支持http)
- jetty搭建http服务器
- netty服务器搭建-http
- 简易搭建http服务器
- Mac Apache服务器搭建、Tomcat(http)服务器搭建、Tomcat(https)服务器搭建
- Dart的文件、目录和链接(3)
- LINUX上搭建HTTP服务器
- MFC无状态栏移动窗口-----------------已修改,亲测可用
- 根据两点经纬度计算距离
- YUM仓库服务
- Design Support Library —— TextInputLayout
- Linux网络编程——tcp并发服务器(多进程)
- 用Dart搭建HTTP服务器(3)
- textbox 只能输入数字
- 机器令砍菜刀
- Android报错"case expressions must be constant expressions"
- LINUX的零散知识
- Docker
- finishOpenedActivities 空指针
- 使用Embed标签在AS3项目中嵌入字体(转自http://zengrong.net/post/1438.htm)
- 萃取(traits)编程技术的介绍和应用