用Dart搭建HTTP服务器(3)

简介: <div class="markdown_views"><h2 id="基于url的请求模式">基于URL的请求模式</h2><p>为了不搞复杂,就简单演示一下 <br>先把需要用到的route包分享出来<a href="http://pan.baidu.com/s/1hq1rxI0">http://pan.baidu.com/s/1hq1rxI0</a></p>

基于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();
}

//处理回调非法URL
serveNotFound(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的访问模式了

目录
相关文章
|
11月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
625 18
|
11月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
502 14
|
10月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
10月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
657 0
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
1433 9
|
Web App开发 前端开发 关系型数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
fuser可用于查询文件、目录、socket端口和文件系统的使用进程 1.查询文件和目录使用者 fuser最基本的用法是查询某个文件或目录被哪个进程使用: # fuser -v .
1036 0
|
Web App开发 前端开发 算法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
基于大数据的精准营销与应用场景 2015年08月11日 大数据 大数据营销时代来临营销学领域过去半个多世纪的发展让我们见证了从“以产品为中心”到“以客户为中心”的转变。
1112 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
1057 0

热门文章

最新文章