本文整理汇总了PHP中Zend_Http_Client_Adapter_Socket类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Http_Client_Adapter_Socket类的具体用法?PHP Zend_Http_Client_Adapter_Socket怎么用?PHP Zend_Http_Client_Adapter_Socket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_Http_Client_Adapter_Socket类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validate
public function validate($username, $password)
{
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Options: ' . print_r($this->_options, true));
}
$url = isset($this->_options['url']) ? $this->_options['url'] : 'https://localhost/validate/check';
$adapter = new Zend_Http_Client_Adapter_Socket();
$adapter->setStreamContext($this->_options = array('ssl' => array('verify_peer' => isset($this->_options['ignorePeerName']) ? false : true, 'allow_self_signed' => isset($this->_options['allowSelfSigned']) ? true : false)));
$client = new Zend_Http_Client($url, array('maxredirects' => 0, 'timeout' => 30));
$client->setAdapter($adapter);
$params = array('user' => $username, 'pass' => $password);
$client->setParameterPost($params);
try {
$response = $client->request(Zend_Http_Client::POST);
} catch (Zend_Http_Client_Adapter_Exception $zhcae) {
Tinebase_Exception::log($zhcae);
return Tinebase_Auth::FAILURE;
}
$body = $response->getBody();
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Request: ' . $client->getLastRequest());
}
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Response: ' . $body);
}
if ($response->getStatus() !== 200) {
return Tinebase_Auth::FAILURE;
}
$result = Tinebase_Helper::jsonDecode($body);
if (isset($result['result']) && $result['result']['status'] === true && $result['result']['value'] === true) {
return Tinebase_Auth::SUCCESS;
} else {
return Tinebase_Auth::FAILURE;
}
}
示例2: __construct
/**
* Constructor
*
* Accepts a Zend_Http_Client argument enabling the implementer to use
* a custom client (custom stream context, etc). Unless specified, a
* default client is used with some common stream context options
*
* @param Zend_Http_Client $client
* @throws CheddarGetter_Client_Exception Throws an exception
* if Zend_Http_Client is not available.
*/
public function __construct(Zend_Http_Client $client = null)
{
if (!class_exists('Zend_Http_Client')) {
throw new CheddarGetter_Client_Exception('Zend_Http_Client is not available.', CheddarGetter_Client_Exception::USAGE_INVALID);
}
// default client
if (!$client) {
$userAgent = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] . ' - CheddarGetter_Client PHP' : 'CheddarGetter_Client PHP';
// socket adapter with custom stream context
$options = array('http' => array('follow_location' => 0, 'max_redirects' => 0, 'timeout' => 100, 'user_agent' => $userAgent), 'ssl' => array('verify_peer' => true, 'allow_self_signed' => false));
$adapter = new Zend_Http_Client_Adapter_Socket();
$adapter->setStreamContext($options);
$client = new Zend_Http_Client(null, array('userAgent' => $options['http']['user_agent'], 'timeout' => 120));
$client->setAdapter($adapter);
}
$this->_client = $client;
}
示例3: createAdapterFromConfig
/**
* @param Enlight_Config $config
* @see https://github.com/paypal/sdk-core-php
* @return Zend_Http_Client_Adapter_Curl|Zend_Http_Client_Adapter_Socket
*/
public static function createAdapterFromConfig($config)
{
$curl = $config->get('paypalCurl', true);
$sslVersion = $config->get('paypalSslVersion', 0);
$timeout = $config->get('paypalTimeout') ?: 60;
$userAgent = 'Shopware/' . Shopware::VERSION;
if ($curl && extension_loaded('curl')) {
$adapter = new Zend_Http_Client_Adapter_Curl();
$adapter->setConfig(array('useragent' => $userAgent, 'timeout' => $timeout));
if (!empty($config->paypalSandbox)) {
$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
$adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
}
$adapter->setCurlOption(CURLOPT_TIMEOUT, $timeout);
$adapter->setCurlOption(CURLOPT_SSLVERSION, $sslVersion);
//$adapter->setCurlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
//$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, 1);
//$adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
} else {
$adapter = new Zend_Http_Client_Adapter_Socket();
$adapter->setConfig(array('useragent' => $userAgent, 'timeout' => $timeout, 'ssltransport' => $sslVersion > 3 || $sslVersion == 1 ? 'tls' : 'ssl'));
}
return $adapter;
}
示例4: read
/**
* Read response from server
*
* @see Zend_Http_Client_Adapter_Socket::read()
*
* @return string
*/
public function read()
{
$response = false;
if (Mage::app()->useCache(self::CACHE_TYPE)) {
$cache = $this->getCache();
$cache->addData($this->_params);
$cacheMode = $this->getConfigData('cache_mode');
if ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_HTTP_PRIOR) {
try {
$response = parent::read();
$cache->save($response);
} catch (Zend_Http_Client_Adapter_Exception $e) {
$response = $cache->load();
}
} elseif ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_CACHE_PRIOR) {
$response = $cache->loadById();
if (!$response) {
try {
$response = parent::read();
$cache->save($response);
} catch (Zend_Http_Client_Adapter_Exception $e) {
$response = $cache->loadByTags();
}
}
} elseif ($cacheMode == PedroTeixeira_Correios_Model_Source_CacheMode::MODE_CACHE_ONLY) {
$response = $cache->load();
}
} else {
$response = parent::read();
}
return $response;
}
示例5: getRestClient
/**
* Returns a reference to the REST client
*
* @return Zend_Rest_Client
*/
public function getRestClient()
{
if ($this->_rest === null) {
/**
* @see Zend_Rest_Client
*/
require_once 'Zend/Rest/Client.php';
$this->_rest = new Zend_Rest_Client();
/**
* @see Zend_Http_Client
*/
require_once 'Zend/Http/Client.php';
$httpClient = new Zend_Http_Client($this->_baseUri, array('keepalive' => $this->_usePersistentConnections));
/**
* The Ticket Evolution Sandbox uses a self-signed certificate which,
* by default is not allowed. If we are using https in the sandbox lets
* tweak the options to allow this self-signed certificate.
*
* @link http://framework.zend.com/manual/en/zend.http.client.adapters.html Example 2
*/
if (strpos($this->_baseUri, 'sandbox') !== false) {
$streamOptions = array('ssl' => array('allow_self_signed' => true));
} else {
$streamOptions = array();
}
/**
* Create an adapter object and attach it to the HTTP client
*
* @see Zend_Http_Client_Adapter_Socket
*/
require_once 'Zend/Http/Client/Adapter/Socket.php';
$adapter = new Zend_Http_Client_Adapter_Socket();
$adapterConfig = array('persistent' => $this->_usePersistentConnections);
$adapter->setConfig($adapterConfig);
$httpClient->setAdapter($adapter);
// Pass the streamOptions array to setStreamContext()
$adapter->setStreamContext($streamOptions);
$this->_rest->setHttpClient($httpClient);
}
return $this->_rest;
}
示例6: _getFeedData
/**
* reads the RSS feeds and extracts the 'description' field from each one.
* Uses caching and http conditional GET to ensure that the feed is only
* read if it has been updated
*
* @return array
*/
protected function _getFeedData()
{
//Get the feed url from the configuration options
$options = $this->_getConfigOptions();
$feed_url = $options['feed']['url'];
$cache_dir = $options['cache']['directory'];
// set cache - this allows us to check whether the feed has been updated
$cache = Zend_Cache::factory('Core', 'File', array('lifetime' => null), array('cache_dir' => $cache_dir));
Zend_Feed_Reader::setCache($cache);
// set Reader properties to allow Conditional GET Requests
Zend_Feed_Reader::useHttpConditionalGet();
// disable SSL peer verification as it can cause problems from some isp's
$options = array('ssl' => array('verify_peer' => false, 'allow_self_signed' => true));
$adapter = new Zend_Http_Client_Adapter_Socket();
$adapter->setStreamContext($options);
Zend_Feed_Reader::getHttpClient()->setAdapter($adapter);
// interrogate the RSS feed
try {
$rss_data = Zend_Feed_Reader::import($feed_url);
} catch (Zend_Feed_Exception $e) {
// feed import failed
Zend_Registry::get('logger')->log('Exception importing feed: ' . $e->getMessage(), Zend_Log::WARN);
return null;
} catch (Zend_Http_Client_Exception $e) {
Zend_Registry::get('logger')->log('Error with URL: ' . $e->getMessage(), Zend_Log::WARN);
return null;
} catch (Exception $e) {
Zend_Registry::get('logger')->log('Unknown error when reading feed: ' . $e->getMessage(), Zend_Log::WARN);
return null;
}
$entries = array();
// response status will be 200 if new data, 304 if not modified
$last_response = Zend_Feed_Reader::getHttpClient()->getLastResponse();
if ($last_response) {
$response_status = $last_response->getStatus();
// Only process if new data
if (200 === $response_status) {
foreach ($rss_data as $item) {
$entry['description'] = $item->getDescription();
$entries[] = $entry;
}
if ($this->_getVerbose()) {
$this->getResponse()->appendBody(new Zend_Date() . ': ' . count($entries) . ' new entries downloaded from rss feed' . PHP_EOL);
}
} else {
if ($this->_getVerbose()) {
$this->getResponse()->appendBody(new Zend_Date() . ': ' . 'No new data found' . PHP_EOL);
}
}
}
return $entries;
}
示例7: close
/**
* Close the connection to the server
*
*/
public function close()
{
parent::close();
$this->negotiated = false;
}
示例8: close
/**
* Close the connection to the server
*
*/
public function close()
{
$this->log("Closing socket\n\n");
parent::close();
}
示例9: write
/**
* Send request to the proxy server
*
* @param string $method
* @param Zend_Uri_Http $uri
* @param string $http_ver
* @param array $headers
* @param string $body
* @return string Request as string
*/
public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
{
// If no proxy is set, fall back to default Socket adapter
if (!$this->config['proxy_host']) {
return parent::write($method, $uri, $http_ver, $headers, $body);
}
// Make sure we're properly connected
if (!$this->socket) {
throw new Zend_Http_Client_Adapter_Exception("Trying to write but we are not connected");
}
$host = $this->config['proxy_host'];
$port = $this->config['proxy_port'];
if ($this->connected_to[0] != $host || $this->connected_to[1] != $port) {
throw new Zend_Http_Client_Adapter_Exception("Trying to write but we are connected to the wrong proxy server");
}
// Save request method for later
$this->method = $method;
// Build request headers
$request = "{$method} {$uri->__toString()} HTTP/{$http_ver}\r\n";
// Add Proxy-Authorization header
if ($this->config['proxy_user'] && !isset($headers['proxy-authorization'])) {
$headers['proxy-authorization'] = Zend_Http_Client::encodeAuthHeader($this->config['proxy_user'], $this->config['proxy_pass'], $this->config['proxy_auth']);
}
// Add all headers to the request string
foreach ($headers as $k => $v) {
if (is_string($k)) {
$v = ucfirst($k) . ": {$v}";
}
$request .= "{$v}\r\n";
}
// Add the request body
$request .= "\r\n" . $body;
// Send the request
if (!fwrite($this->socket, $request)) {
throw new Zend_Http_Client_Adapter_Exception("Error writing request to proxy server");
}
return $request;
}
示例10: write
public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
{
$uri->setHost($this->_ip);
return parent::write($method, $uri, $http_ver, $headers, $body);
}