一. 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. Day02 结构类型

    1.结构类型是值类型  (类是引用类型) 2.结构中也可以像类一样,定义 字段  属性  方法  但是不能给字段赋初始值 3.结构的构造方法中,必须为所有的字段赋值 4.不能为结构显示定义无参数的构造 ...

  2. SeaJS基本开发原则

    SeaJS基本开发原则在讨论SeaJS的具体使用前,先介绍一下SeaJS的模块化理念和开发原则.使用SeaJS开发JavaScript的基本原则就是:一切皆为模块.引入SeaJS后,编写JavaScr ...

  3. 织梦dedecms发布视频文章前台变成一张图片的解决方法

    在发布文章的时候,有时需要插入视频的代码,如优酷.腾讯等视频,这样更能让文章变的丰富,但是在发布视频的时候,前台并不能播放视频,而是一张图片 解决这个方法其实很简单,在发布视频文章的时候,将附加选项的 ...

  4. ConcurrentLinkedQueue 源码分析

    ConcurrentLinkedQueue ConcurrentLinkedQueue 能解决什么问题?什么时候使用 ConcurrentLinkedQueue? 1)ConcurrentLinked ...

  5. Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor

    不是 TColor, 是 TAlphaColor 了. TAlphaColor = type Cardinal; 还是一个整数. 四个字节分别是: AA RR GG BB(透明度.红.绿.蓝); 这和 ...

  6. rpm安装软件时提示warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de

    在RedHat下有时候用rpm安装软件是会出现下面则中错误 1.安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105 ...

  7. python学习笔记(数据类型)

    python数据类型: int 类型 float 小数类型 string 字符串 布尔类型 a = True b = False 1.列表,也称数组或list或array.它的表达方式通过下标或索引或 ...

  8. 关于Tomcat的浅谈

    (今天看到tomcat已经更新到了9.0.24,这是一篇很早之前的文章,由于账号不想用了,所以搬到这里来,另外的账号要注销了) 1.Tomcat的下载 tomcat官网:http://tomcat.a ...

  9. 05 使用bbed跳过归档恢复数据文件

    5 使用BBED跳过归档 在归档模式下,缺失了一部分的归档日志文件,对数据文件进行恢复 1 开启归档 --shutdown immediate --startup mount --alter data ...

  10. Krustal重构树

    zz:https://blog.csdn.net/ouqingliang/article/details/81206050 Kruskal重构树基于Kruskal算法.在执行算法过程中,Kruskal ...