全部博文(315)
分类:
2008-02-26 16:39:16
,以及一些更复杂的特征,比如HTTP认证和文件上传。请求成功(以及很多不成功的
也是一样)返回一个Zend_Http_Response对象,这个对象提供了访问响应的头部和实
体。
该类构造器有选择性的接受一个URL作为它的第一个参数(既可以是一个字符串也可以
是一个Zend_Uri_Http对象),和一个可选的配置参数数组。不过它们都可以被省去,直到用
setUri()和setConfig()方法来设定
发起基本http请求:
Request()方法获得一个可选参数――请求的方式。可以是被http协议定义的GET,POST,PUT,HEAD,DELETE,TRACE,OPTIONS,CONNECT任何一种,不过为了方便起见,这些都被定义成一个类的常量:Zend_Http_Request::GET/POST等等
如果请求的方式没有确定,就由最后一次访问setMethod()来确定,如果setMethod()从未被访问,缺省的请求方式是GET,如下例:
1、发起一个简单GET请求
require_once 'Zend/Http/Client.php';
$client = new Zend_Http_Client('');
$response = $client->request();
2、使用GET以外的请求方式
// Preforming a POST request$response = $client->request('POST');// Yet another way of preforming a POST request$client->setMethod(Zend_Http_Client::POST);$response = $client->request();
添加GET和POST参数:
添加GET参数来发起一个HTTP请求是非常简单的,既可以设定为URL的一部分,也可以使用setParameterGet()方法。该方法把GET参数的名字作为它的第一个参数,GET参数的值作为第二个参数。方便起见,setParameterGEt()方法可以接受一个GET变量的关联数组键值对。如下例所示:
// Setting a get parameter using the setParameterGet method$client->setParameterGet('knight', 'lancelot');// This is equivalent to setting such URL:$client->setUri('');// Adding several parameters with one call$client->setParameterGet(array('first_name' => 'Bender','middle_name' => 'Bending''made_in'=> 'Mexico',));
GET参数能被每次请求发送,POST参数仅在POST请求的实体中发送。方式和GET一样,使用setParameterPost()方法,如例:
// Setting a POST parameter$client->setParameterPost('language', 'fr');// Setting several POST parameters, one of them with several values$client->setParameterPost(array('language' => 'es','country' => 'ar','selection' => array(45, 32, 80)));
Zend_Http_Client提供了一个访问最后一次发送请求和响应接受的方法。Zend_Http_Client->getLastRequest()和Zend_Http_Client->getLastResponse()