《ThinkPHP 5.0快速入门》 请求和响应

1、请求对象

//传统调用$request = Request::instance();//实例化对象
$request->url();//获取当前的域名
//继承think\Controller
class Index extends Controller(){
    public function hello(){
        return $this->request->url();//获取当前域名
    }
}
//自动注入请求对象
class Index(){
    public function hello(Request $request){
        return $request->url();
    }
}//hello方法的request参数是系统自动注入的,而不需要通过URL请求传入。个人感觉此方法最直观、最实用
//动态绑定属性
class Base extends Controller(){
    public function _initialize(){//优先执行的函数
        $user = User::get(Session::get(‘user_id‘));//User = 用户模型
        Request::instance()->bind(‘user‘,$suer);//绑定用户信息到request
    }
}

//在其他控制器获取
class Index extends Base(){
    public function(Request $request){
        $request->user->id;
        $request->user->name;
    }
}
//使用助手函数:不需要继承Controller类、也无需引入Request
class Index{
    public function hello(){
        return request()->url();//获取url
}

2、请求信息

//获取请求参数
class Index(){
    public function hello(Request $request){     ...
        $params = $request->param();//请求参数
    }
}

路径:http://tp5.com/index/index/hello.html?test=ddd&name=thinkphp

参数:
array (size=2)
  ‘test‘ => string ‘ddd‘ (length=3)
  ‘name‘ => string ‘thinkphp‘ (length=8)
name:thinkphp
//input助手函数
...
public function hello(){
    $name = input(‘name‘);
    $test = input(‘test‘);
}
//设置默认值和变量过滤
...
public function hello(Request $request){
    $request->param(‘name‘,‘World‘,‘strtolower‘);
    //$request->param(‘变量‘,‘默认值‘,‘过滤条件‘);
}
//Request对象也可以用于获取其它的输入参数
$request->file(‘image‘);
// ‘上传文件信息:image‘;
$request->cookie(‘name‘);
// ‘cookie参数:name‘;
input(‘file.image‘);
// ‘上传文件信息:image‘;
input(‘cookie.name‘);
// ‘cookie参数:name‘;
//获取请求参数   http://tp5.com/index/index/hello/test/ddd.html?name=thinkphp
echo ‘请求方法:‘ . $request->method(); //GET
echo ‘资源类型:‘ . $request->type(); //HTML
echo ‘访问IP:‘ . $request->ip(); //127.0.0.1
echo ‘是否AJax请求:‘ . var_export($request->isAjax(), true); //false
dump($request->param());
echo ‘请求参数:仅包含name‘;
dump($request->only([‘name‘]));
echo ‘请求参数:排除name‘;
dump($request->except([‘name‘]));

3、响应对象

//默认输出return [‘name‘ => ‘thinkphp‘, ‘status‘ => ‘1‘];

‘default_return_type‘    => ‘json‘,// 默认输出类型
输出:{"name":"thinkphp","status":"1"}

‘default_return_type‘    => ‘xml‘,// 默认输出类型
输出:<think><name>thinkphp</name><status>1</status></think>
use \traits\controller\Jump;//包含许多返回的方法
class Index{
    public function index($name=‘‘){
        if (‘thinkphp‘ == $name) {
            $this->success(‘欢迎使用ThinkPHP
        5.0‘,‘hello‘);
        } else {
            $this->error(‘错误的name‘,‘guest‘);
        }
    }

    public function hello(){
        $this->redirect(‘http://www.baidu.com‘);//跳转页面
    }

}

原文地址:https://www.cnblogs.com/xinchenhui/p/11651403.html

时间: 2024-08-29 22:28:30

《ThinkPHP 5.0快速入门》 请求和响应的相关文章

http请求与响应全过程

HTTP 无状态性 HTTP 协议是无状态的(stateless).也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端.HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求. HTTP 持久连接       HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销.因为同一个页面可能存在多个对象,所以非持久连接可

请求和响应。

之前先复习: 1.Servlet: Servlet接口. MyServlet extends HttpServlet. (HttpServlet继承自GenericServlet,GenericServlet实现了Servlet接口.) 2.java web的 servlet技术: Java程序和页面之间的桥梁.Servlet对象放在tomcat web服务器,web容器,servlet容器. 3.调用.当请求出现时,tomcat根据映射路径找到对应的类,创建对应的对象,调用父类写好的servi

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

一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议漫谈,http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html 3.逖靖寒,浅析HTTP协议,http://www.cnblogs.com/gpcuster/archive/2009/05/25/1488749.htm

HTTP/NSURLConnection(请求、响应)、http响应状态码大全

一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻视频:优酷.百度视频.搜狐视频.爱奇艺视频音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐LBS:百度地

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

Postman工具——请求与响应

两个内容: Request 请求和 Response 响应,下面就开始了. 一.Request 请求 Request 请求,我们只介绍常用的四种:GET.POST.PUT.DELETE,其他类型的就不展开介绍了.另外,我们今天测试的项目是基于 RESTful API 规范的,现在已经成为主流了,有兴趣的同学可以研究下. 1.1 GET 请求 对于 GET 请求来说,我们一般是用来查询数据,返回一个数组或对象.RESTful API 的一个好处就是我们根据不同级别的访问路径,会自动判别返回的数据类

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

我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把日志记录操作放在一个ActionFilter即可. [AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public class ApiActionAttribute

对Servlet请求或响应进行JMockit测试

对Servlet请求及响应进行mock方法, 通过getMockInstance方法对servlet进行打桩,对servlet提供的方法进行mock,替代真正的servlet请求或响应. 参考链接: https://stackoverflow.com/questions/31689729/servlet-junit-test-using-jmockit 代码如下: @RunWith(JMockit.class) public class ImageServletTest3 { @Test pub

浅谈HTTP请求与响应

HTTP协议用于客户端和服务器之间的通信,请求访问的一段是客户端,提供资源响应的一段是服务器端. HTTP通信是采用请求应答的方式来进行的,客户端发出请求,服务器响应.如果没有客户端的请求,服务器端是不进行任何响应的.HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列4个步骤: (1)建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP /IP完成,这是在网络层进行的.HTTP是比TCP更高层次的应用