一. Request对象获取方法

1. request() 助手函数获取

2. think\Request 类获取

3.利用框架注入Request对象  Request方法时单利方法 在think框架app类中会被实例化

<?php
namespace app\index\controller; use think\Request; class Index
{
/**
* @param Request $request
* @return string|void
*/
public function index(Request $request)
{
#$request = request();
#$request = Request::instance();
return dump($request);
}
}

二. Request 对象的使用方法  注Request的param方法获取的值包括post传输的值,使用时尽量使用$request->post('id')这种明确范围的方式

<?php
namespace app\index\controller; use http\Params;
use think\Request; class Index
{
/**
* @param Request $request
* @return string|void
* @url http://localhost/news/5.html?name=jiang
*/
public function index(Request $request)
{
/* 获取域名 */
dump($domain = $request->domain()); # 返回域名 $domain = http://localhost
dump($pathinfo= $request->pathinfo()); # 返回域名和?之间的值 $pathinfo = news/5.html
dump($path = $request->path()); # $path = news/5 /* 请求类型 */
dump($method = $request->method()); # 返回请求方法 $method = GET;
dump($request->isGet()); #判断是请求的方法类型 是判断的类型返回true 不是返回false
dump($request->isAjax()); # /* 请求参数 */
dump($id = $request->get("id")); #get接收的值不包括 pathinfo 部分 这里返回 null
dump($id = $request->param('id')); # $id = 5
dump($name = $request->param('name')); # $name = jiang
#session("name",'jiangfeilong'); #设置session
dump($session = $request->session()); #获取sssion对象 没设置session的化返回空数组
dump($session_name = $request->session("name")); #返回session 的name的值
dump($cookie = $request->cookie()); #获取cookie对象 返回cookie数组
dump($phpSessId = $request->cookie('PHPSESSID')); #返回cookie的sessionId的值
/* 利用助手函数获取url参数 */
dump($id = input('id')); /* 获取模块 控制器 操作 */
dump($module = $request->module()); #获取当前模块 这里时index
dump($controller = $request->controller()); #返回当前控制器 这里是 Index类
dump($action = $request->action()); #返回当前操作 这里返回的是index模块的Index类的index()方法 /* 获取 url */
dump($url = $request->url()); #返回 / 之后的 url 这里是 /news/5.html?name=jiang
dump($baseUrl = $request->baseUrl()); # 返回 /和?号之间url的部分 这里是 /news/5.html }
}

request和input使用filter过滤

语法格式 $reuqest->post('key',100,'过滤函数'); //100为默认值  过滤函数可以自己定义,也可以用Php的 trim  intval 等函数

自己定义fillter的使用示例

<?php
/* application/index/controller/filter.php */ function change($text )
{
$tmp = intval($text);
if((!is_int($tmp))){
return 0;
}
return -$tmp;
}
<?php
namespace app\index\controller; use http\Params;
use think\Request;
import('filter',APP_PATH.'common',".php");
class Index
{
/**
* @param Request $request
* @return string|void
* @url http://localhost/news/5.html?name=jiang
*/
public function index(Request $request)
{ dump('request -> '.$request->post('id',100,'intval'));
/* 助手函数 */ dump($request->post('id',100,'change'));
dump(input('post.name','jiang','trim')); } }

Thinkphp 请求和响应的更多相关文章

  1. ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应

    ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应 第6章 TP5.0 请求和响应 ===================================== 上次复习 1.新建控制器 ...

  2. Django底层剖析之一次请求到响应的整个流程

    As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...

  3. 初入网络系列笔记(4)HTTP请求和响应

    一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...

  4. http协议(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  5. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

  6. struts2基础——请求与响应、获取web资源

    一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...

  7. 浏览器-Tomcat服务器-请求与响应

    浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...

  8. 写一个ActionFilter检测WebApi接口请求和响应

    我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把 ...

  9. AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应

    Web 开发中,除了数据操作之外,最频繁的就是发起和处理各种 HTTP 请求了,加上 HTTP 请求又是异步的,如果在每个请求中来单独捕获各种常规错误,处理各类自定义错误,那将会有大量的功能类似的代码 ...

随机推荐

  1. Spring Boot 中使用 spring-boot-devtools (使用 Gradle 作为构建工具)

    Spring Boot 中使用 spring-boot-devtools (使用 Gradle 作为构建工具) 本文使用 Gradle 作为构建工具,关于 Gradle 构建工具,可以理解为是 Mav ...

  2. 【adb真机查Log】Android Studio 3.X 找不到Android Device Monitor

    参考来源:https://blog.csdn.net/yuanxiang01/article/details/80494842 以下信息来源于Android Developers官网 Android设 ...

  3. 移动端调试 — iPhone +Safari

    1   开启iOS设备的调试功能 打开“设置”程序,进入“Safari”->“高级”页面开启“Web检查器”: 2   mac safari浏览器设置开发者工具 safari ->偏好设置 ...

  4. Redis安装启动,Redis Desktop Manager安装

    Window 下安装下载地址:https://github.com/MSOpenTech/redis/releases.Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这 ...

  5. golang md5 结果类型

    golang  md5 结果类型 package main import ( "crypto/md5" "encoding/hex" "fmt&quo ...

  6. vue 上传文件 并以表格形式显示在页面上

    先上代码 <label for="file" class="btn">多文件上传</label> <input type=&quo ...

  7. js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter

    对象的数据属性 Configurable,Enumerable,Writable,Value var person = {} Object.defineProperty(person,'name',{ ...

  8. spring注解之@Scope

    转自:https://blog.51cto.com/4247649/2118351 作者:知了123 主要从以下几方面来介绍一下@Scope注解 @Scope注解是什么 @Scope注解怎么使用 @S ...

  9. P2835 刻录光盘 (tarjan缩点)

    [题目描述] 现在假设总共有N个营员(2<=N<=200),每个营员的编号为1~N.LHC给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料.当然,如果A愿意把资料拷贝 ...

  10. [SheetJS] js-xlsx模块学习指南

    简介 SheetJS是前端操作Excel以及类似的二维表的最佳选择之一,而js-xlsx是它的社区版本. js-xlsx将注意力集中到了数据转换和导出上,所以它支持相当多种类的数据解析和导出.不仅仅局 ...