# 如何接收请求信息
在前面的章节中,我们提到了接收请求信息,并用到了一个基本方法
String text = ctx.getString('text');
1
这是接收一个字符串参数。
实际上接收请求参数的方法,一共有7个,分别如下:
名称 | 作用 | 值例子 | 默认值 |
---|---|---|---|
getString | 获取字符串参数 | hello world | |
getInt | 获取整形数 | 11, -10 | 0 |
getPositiveInt | 获取整形数,正数 | 11 | 0 |
getNegativeInt | 获取整形数,负数 | -10 | 0 |
getDouble | 获取浮点数 | 1.1, -3.1 | 0 |
getPositiveDouble | 获取浮点数,正数 | 1.1 | 0 |
getNegativeDouble | 获取浮点数,负数 | -3.1 | 0 |
getUploadFile | 获取上传文件 |
注意:
- 如果通过上述方法获取不到相应的参数值,将会返回默认值
Dart
里的浮点数,就只有Doulbe
类型。没有其他语言里的Float
,Double
之分
# 如何修改默认值
上述方法,都有默认值。
在一些情况下,我们需要修改默认值,比如客户端查询一个信息列表,通常会传过过来一个分页数量的参数 pageSize
,表示这次请求需要返回多少条数据。
如果写成这样
int pageSize = ctx.getPositiveInt('pageSize');
1
那么它的默认值即是 0
, 也就是说如果找不到传入的参数 pageSize
, 或者传入的参数 pageSize
不是正整数的情况下,返回值将是 0
,显然这不符合我们的需求。
像下面这样做
int pageSize = ctx.getPositiveInt('pageSize', def: 20);
1
可以多传入一个命名参数 def
,表示默认值是 20
,即可符合我们的需求。
其他方法,也有这样的参数,如果需要,可以使用他们。
# 从什么地方获取参数
一次客户端请求,参数可能来自于以下类型
- 请求头 header
- 请求体 body
- 会话 session
- cookie
- url
默认情况下,当我们使用类似于 ctx.getString
方法,获取到的参数,来自于上述所有类型的全部集合。
如果需要指定获取参数的类型,可以使用命名参数 from
,例如
ctx.getString('text', from: 0); //从全部参数里找text
ctx.getString('text', from: 1); //从请求头header里找
ctx.getString('text', from: 2); //从url的查询参数里找
ctx.getString('text', from: 3); //从请求体body里找
ctx.getString('text', from: 4); //从session里找
ctx.getString('text', from: 5); //从cookie里找
ctx.getString('text', from: 6); //从自定义参数集合里找
1
2
3
4
5
6
7
2
3
4
5
6
7
其他方法,也有这样的参数,如果需要,可以使用他们。