全部博文(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()