Update Request

master
yutent 2023-11-02 17:48:05 +08:00
parent 911e1d3ade
commit 244d77f25f
1 changed files with 21 additions and 28 deletions

@ -1,32 +1,33 @@
## `Request`请求体对象
> 这是一个对原生的http request请求体, 进一步封装的结果, 会自动对url的合法性进行校验, 并且以友好的方式返回错误信息。 同时封装一些常用的方法。
# `Request`请求体对象
> 这是一个对原生的http request请求体进一步封装后的对象, 会自动对url的合法性进行校验, 并且以友好的方式返回错误信息。 同时封装一些常用的方法。
### 属性
## 属性
+ `.origin<Object>` 原生的request和response对象,如果封装的这些方法不满足你的需求,可以直接对原生的request进行操作
+ `.url` 当前请求的url(修正后的)
+ `.method<String>` http请求方法, 纯小写。
+ `.method` http请求方法, 大写。
+ `.app<String>` 一级路由的名字。
+ `.host` 当前请求所使用的域名(含端口号, 非80和443时)
+ `.path<Array>` 除一级路由以外的部分, 以数据形式储存。 注意: 路由中间件会抽走第2段。
+ `.hostname` 当前请求所使用的域名(不含端口号)
+ `.url<String>` 经过修正后的path部分
+ `.path` 除一级路由以外的部分, 以数组格式储存。 `注意: 路由模式一会抽走第2段`
+ `.protocol` 当前请求使用的协议(http|https), 使用nginx或其他负载均衡代理访问时, 依赖`x-forwarded-proto`判断。
+ `.query` 当前请求的url上的参数对象。
+ `.headers` 当前请求的所有headers对象, key全部为小写。
+ `.cookies` 当前请求的携带的所有的cookies。
+ `.ip` 当前请求来源IP地址(内网访问时可能一直为127.0.0.1), 使用nginx或其他负载均衡代理访问时, 依赖`x-real-ip`或`x-forwarded-for`获取。
+ `.body` 当前请求的body, 首次调用需要使用`await`, 之后使用可不需要, 会从内存中读取。
### 方法
+ `.get(key<String>, xss<Boolean>)` 同php的$_GET[]。
- key`<String>` [可选], 不传返回所有的参数。
- xss`<Boolean>` [可选], 是否对取值进行基础的xss过滤。
+ `.post(key<String>, xss<Boolean>)` 同php的$_POST[]。
- key`<String>` [可选], 不传返回所有的参数。
- xss`<Boolean>` [可选], 是否对取值进行基础的xss过滤。
> 只要是在body中的, 都是用这个方法读取, 无论method是不是POST。
## 方法
+ `.header(key<String>)` 读取头信息
@ -37,11 +38,3 @@
- key`<String>` [可选], 字段名, 不传返回所有的cookie。
+ `.ip()` 读取客户端的IP地址(不一定能获取到)。
----
上一节: [⟪控制器⟫](https://github.com/bytedo/gmf.core/wiki/Controller)
下一节: [⟪Response⟫](https://github.com/bytedo/gmf.core/wiki/Response)