HTTP服务(ZendHttp).ppt_第1页
HTTP服务(ZendHttp).ppt_第2页
HTTP服务(ZendHttp).ppt_第3页
HTTP服务(ZendHttp).ppt_第4页
HTTP服务(ZendHttp).ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第28章HTTP服务 Zend Http HTTP是出现时间最长 也是目前使用最为广泛的网络应用服务之一 在互联网诞生时 HTTP就随之而来 随着技术的发展 各种新的应用层出不穷 然而HTTP服务仍以其旺盛的生命力占据了网络应用的重要份额 在ZendFramework的服务类组件中就提供了Zend Http组件 专门用于处理与HTTP相关的业务 Zend Http组件包括Zend Http Client Zend Http Cookie与Zend Http Response几个部分 其中 Zend Http Client在其中居于最重要的地位 本章就分别介绍有关Zend Http组件的内容 28 1Zend Http Client基本用法 Zend Http Client类是一个接口 该类为那些需要执行HTTP请求的程序提供了方便 Zend Http Client可以执行GET POST PUT和DELETE等基于HTTP的请求 本节先来介绍Zend Http Client的最基本用法 注意 默认情况下Zend Http Client将追踪5次HTTP重定向 要改变这个行为 可以使用setConfig 方法 该方法在28 1 4小节详细介绍 28 1 1创建Zend Http Client对象 通过使用new关键字与类Zend Http Client的构造方法 可以建立一个Zend Http Client对象 其构造方法的语法格式如以下代码所示 construct uri null config null newZend Http Client url config 28 1 2获取与设置URI 在创建一个Zend Http Client对象之后 可以通过对象的getUri 方法来获取对象的URI 该方法的语法格式如以下代码所示 getUri as string false 另外 如果在创建Zend Http Client对象时没有指定 uri参数 或者要改变对象的URI可以通过方法setUri 对其进行设置 该方法的语法格式如以下代码所示 setUri uri 28 1 3设置与获取头部信息 对一个HTTP页面来说 通常其头部信息 Headerinformation 中包含有该页的一些主要相关信息 获取此信息会有助于了解该页面 下面依次讲解如何设置头部信息和获取已有的头部信息 1 设置头部信息2 获取头部信息 28 1 4修改各项设置 Zend Http Client对象有一个protected属性 config 该属性为一个数组型变量 其中保存有与对象各种行为紧密相关的配置 其内容有以下几项 maxredirects strictredirects useragent timeout adapter httpversion keepalive storeresponse 28 1 5执行请求并获取内容 使用Zend Http Client对象执行请求并获取其内容 可以按照以下步骤进行 1 创建一个Zend Http Client对象 2 执行该对象的request 方法返回一个Zend Http Response对象 3 通过Zend Http Response的getBody 方法获取页面内容 28 2Zend Http Client高级用法 上一节介绍了Zend Http Client类的基本用法 除了上一节所介绍的各种使用方法之外 该类还有诸如 实现页面重定向 设置Cookie 实现文件上传以及HTTP认证等高级用法 本节将就这些高级用法分别向读者做进一步的讲解 28 2 1HTTP重定向 默认情况下 Zend Http Client将会自动地处理HTTP重定向 并允许最多跟踪5次重定向 该值可以通过使用setConfig 方法修改 config的maxredirects选项进行设置 具体内容请参见28 1 4小节 与HTTP 1 1RFC RequestForComments请求注解 一致 HTTP301and302 永久转向与暂时转向 请求将会被Client以相同的请求方法发送到指定的位置 但是很多的Client并不这样执行 当页面重定向时它总是向新的地址使用GET方法 默认情况下 Zend Http Client也这样处理 当读取到301或者302转向的请求时 所有的GET和POST参数都将被重置 而都以一个GET请求的形式被发送到一个新的地址 该行为可以通过将 config数组的strictredirects配置项设置为True来改变 28 2 2使用Cookie Zend Http Client类为请求中添加Cookie提供了一个很简单的接口 因此 不需要为页面发送特别的头信息 只需要执行setCookie 方法即可 该方法有多种调用方式 不论何种方式均可以实现相同的功能 其语法格式如以下代码所示 setCookie cookie value null 28 2 3实现文件上传 通常情况下 要想实现文件上传 需要使用HTML中的Form表单里的File表单项 而使用Zend Http Client的setFileUpload 方法 也可以模拟实现文件上传的功能 该方法的语法格式如以下代码所示 setFileUpload filename formname data null ctype null 28 2 4HTTPAuth认证 目前的Zend Http Client只支持最基本的HTTP认证 通过Zend Http Client的setAuth 方法即可实现这样的功能 该方法的语法格式如以下代码所示 setAuth user password type self AUTH BASIC 28 3Zend Http Client Adapter连接器 目前ZendFramework中的Zend Http Client类提供了以下三种连接器 Zend Http Client Adapter SocketZend Http Client Adapter Proxy Zend Http Client Adapter Test 28 3 1Socket连接器 默认情况下 Zend Http Client将会使用Zend Http Client Adapter Socket连接器作为其默认的连接器 除非使用了setConfig 方法对其进行修改 否则将一直使用此连接器 该连接器基于PHP中的fsocketopen 函数 不需要其他特别的PHP扩展即可运行 28 3 2Proxy连接器 Zend Http Client Adapter Proxy 代理 连接器与默认的Socket连接器十分类似 二者的不同在于代理连接器的连接是通过一个HTTP代理服务器进行 而Socket连接器则是直接连接到目标服务器 该连接器允许Zend Http Client通过代理服务器进行连接 这也是需要更高的安全性与执行的原因 28 3 3Test连接器 Zend Http Client Adapter Test连接器提供了一个可选方法 setResponse 该方法的语法格式如以下代码所示 setResponse response 28 3 4自定义连接器 Zend Http Client Adapter提供了连接器接口类Zend Http Client Adapter Interface 这为用户创建自定义连接器提供了可能 用户只需要继承该接口即可创建自定义的连接器 28 4Zend Http Cookie 在使用Zend Http Client类进行setCookie 操作时 需要使用到另一个Zend Http子类Zend Http Cookie 该子类提供了对于Cookie的常规操作 其内容包括分析HTTP响应字符串 收集Cookie信息以及访问Cookie的属性等 本节就来介绍Zend Http Cookie的使用 28 4 1创建实例 要初始化一个Zend Http Cookie对象可以通过两种方法来实现 第一种为使用类的构造方法 另一种为调用其静态方法fromString 下面就这两种不同的方法分别作介绍 1 使用类的构造方法2 使用fromString 方法 28 4 2获取信息方法 在Zend Http Cookie中提供了这样一组方法用于实现该类操作 这些方法包括如下几个 getName 方法getValue 方法getDomain 方法getPath 方法getExpiryTime 方法除了以上方法外 Zend Http Cookie还提供了几个判断方法来判断Cookie的行为 该类判断方法有以下几个 isSecure 方法isExpired int time null 方法isSessionCookie 方法 28 4 3匹配Cookie 使用Zend Http Cookie的math 方法可以对Cookie是否与给定的事态相匹配做出判断 并以此判断是否发送Cookie 该方法的语法格式如以下代码所示 match uri matchSessionCookies true now null 28 5Zend Http Response Zend Http Response类是由Zend Http Client的request 请求所返回的响应 该类可以提供简单的访问方式 它提供一组方法用于访问返回的响应信息 这些方法有如下几个 isError 方法isSuccessful 方法isRedirect 方法getStatus 方法getMessage 方法getHeaders 方法getBody 方法 28 5 1判断是否出错并返回状态 Zend Http Response的isError 方法用于判断响应是否出错 如果出错将返回错误代码 反之则返回False 28 5 2判断是否成功 isSuccessful 方法与isError 方法正好相反 后者在请求返回成功 返回状态码200 即状态为OK 时返回False 而前者则在请求返回成功 返回状态码200 即状态为OK 返回True 28 5 3返回头部信息 Zend Http Response的getHeaders 方法用于获取所返回的HTTP头信息 并赋值到一个数组中 合理使用该信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论