本文整理汇总了PHP中phpCAS::getProxiedService方法的典型用法代码示例。如果您正苦于以下问题:PHP phpCAS::getProxiedService方法的具体用法?PHP phpCAS::getProxiedService怎么用?PHP phpCAS::getProxiedService使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phpCAS
的用法示例。
在下文中一共展示了phpCAS::getProxiedService方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: retrieveData
/**
* Retrieves the data using the given url. The default implementation uses the file_get_content()
* function to retrieve the request. Subclasses would need to implement this if a simple GET request
* is not sufficient (i.e. you need POST or custom headers).
* @param string the url to retrieve
* @return string the response from the server
* @TODO support POST requests and custom headers and perhaps proxy requests
*/
protected function retrieveData($url)
{
if ($this->debugMode) {
error_log(sprintf(__CLASS__ . " Retrieving %s", $url));
}
try {
if ($this->method == 'GET') {
$http = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_GET);
} else {
if ($this->method = 'POST') {
$http = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_POST);
} else {
throw new Exception('Unsupported HTTP method ' . $this->method);
}
}
$http->setUrl($url);
// Not yet supported in phpCAS-1.2.2, will be added in a future version.
// foreach ($this->getHeaders() as $header) {
// $http->addRequestHeader($header);
// }
$http->send();
$this->response = DataResponse::factory('HTTPDataResponse', array());
$this->response->setRequest($this->method, $url, $this->filters, $this->requestHeaders);
$this->response->setResponse($http->getResponseBody(), $http->getResponseHeaders());
if ($this->debugMode) {
error_log(sprintf(__CLASS__ . " Returned status %d and %d bytes", $this->getResponseCode(), strlen($data)));
}
return $http->getResponseBody();
} catch (CAS_ProxyTicketException $e) {
if ($this->debugMode) {
error_log(__CLASS__ . " The user's proxy ticket expired, prompt for login.");
}
// For now we will just re-throw the exception and let the WebModule that
// is calling us handle prompting for re-authentication.
throw $e;
}
}
示例2: flush
<?php
require 'script_info.php';
?>
<p>the user's login is <b><?php
echo phpCAS::getUser();
?>
</b>.</p>
<h2>Response from service <?php
echo $serviceUrl;
?>
</h2>
<?php
flush();
// call a service and change the color depending on the result
try {
$service = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_POST);
$service->setUrl($serviceUrl);
$service->setContentType('application/x-www-form-urlencoded');
$service->setBody('favorite_color=blue');
$service->send();
if ($service->getResponseStatusCode() == 200) {
echo '<div class="success">';
echo $service->getResponseBody();
echo '</div>';
} else {
// The service responded with an error code 404, 500, etc.
echo '<div class="error">';
echo 'The service responded with a ' . $service->getResponseStatusCode() . ' error.';
echo $service->getResponseBody();
echo '</div>';
}