一. 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. p5437 【XR-2】约定

    分析 https://www.cnblogs.com/cjyyb/p/11111404.html 代码 #include<bits/stdc++.h> using namespace st ...

  2. Denali NAND FLASH控制器的验证

    NAND FLASH的结构如图所示: Denali NAND FLASH控制器模块提供了从AHB总线到外部NAND FLASH存储器芯片IO管脚的访问功能.主要技术特性包括: 1.标准32位AHB总线 ...

  3. 杂项-职位-DBA:DBA

    ylbtech-杂项-职位-DBA:DBA  数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的 ...

  4. python生成requirements.txt 导出项目依赖

    使用pip freeze $ pip freeze > requirements.txt 这种方式是把整个环境中的包都列出来了,如果是虚拟环境可以使用. 通常情况下我们只需要导出当前项目的req ...

  5. log4j.rootLogger作用域

    log4j.rootLogger只对没有申明appender的包起作用:

  6. requests模块(请求接口)

    下面分别是get,post,入参json,添加cookie,添加header,上传/下载文件 的接口请求举例: import requests   #导入模块 #1.发get请求 url = 'htt ...

  7. PCB布线设计-模拟和数字布线的异同(转)

    工程领域中的数字设计人员和数字电路板设计专家在不断增加,这反映了行业的发展趋势.尽管对数字设计的重视带来了电子产品的重大发展,但仍然存在,而且还会一直存在一部分与模拟或现实环境接口的电路设计.模拟和数 ...

  8. charles_01_打断点修改接口请求&返回数据

    前言 测试过程中,为了模拟某场景测试,经常需要修改接口请求或者返回数据.可通过抓包工具打断点,实现模拟测试场景.常用的抓包工具charles和fiddler均可打断点mock数据.由于小编安装了cha ...

  9. Android安全测试(一)数字签名检测

    1.测试环境 SDK: Java JDK, Android SDK. 下图为利用中间人攻击的手段,将智能电视上所有影片的封面图替换的实际效果图 利用中间人攻击还可以进行token获取等,所以不要轻易使 ...

  10. IDEA常用快揵键

    IDEA常用快揵键 工作中常用IDEA快捷键 参见博客:https://www.cnblogs.com/zhangpengshou/p/5366413.html Double shift    --- ...