phpCAS  version 1.4.0
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
CAS_ProxiedService_Http_Post Class Reference
Inheritance diagram for CAS_ProxiedService_Http_Post:
CAS_ProxiedService_Http_Abstract CAS_ProxiedService_Abstract CAS_ProxiedService_Http CAS_ProxiedService CAS_ProxiedService_Testable

Public Member Functions

 setContentType ($contentType)
 
 setBody ($body)
 
- Public Member Functions inherited from CAS_ProxiedService_Http_Abstract
 __construct (CAS_Request_RequestInterface $requestHandler, CAS_CookieJar $cookieJar)
 
 getServiceUrl ()
 
 setUrl ($url)
 
 send ()
 
 getResponseHeaders ()
 
 getResponseStatusCode ()
 
 getResponseBody ()
 
 getCookies ()
 
- Public Member Functions inherited from CAS_ProxiedService_Abstract
 setProxyTicket ($proxyTicket)
 
 setCasClient (CAS_Client $casClient)
 
- Public Member Functions inherited from CAS_ProxiedService
 getServiceUrl ()
 
 setProxyTicket ($proxyTicket)
 
- Public Member Functions inherited from CAS_ProxiedService_Http
 setUrl ($url)
 
 send ()
 
 getResponseHeaders ()
 
 getResponseBody ()
 

Protected Member Functions

 populateRequest (CAS_Request_RequestInterface $request)
 
- Protected Member Functions inherited from CAS_ProxiedService_Http_Abstract
 makeRequest ($url)
 
 populateRequest (CAS_Request_RequestInterface $request)
 
 getRedirectUrl (array $responseHeaders)
 
 hasBeenSent ()
 
- Protected Member Functions inherited from CAS_ProxiedService_Abstract
 getProxyTicket ()
 
 initializeProxyTicket ()
 

Private Attributes

 $_contentType
 
 $_body
 

Additional Inherited Members

- Protected Attributes inherited from CAS_ProxiedService_Http_Abstract
 $requestHandler
 

Detailed Description

This class is used to make proxied service requests via the HTTP POST method.

Usage Example:

 try {
            $service = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_POST);
            $service->setUrl('http://www.example.com/path/');
    $service->setContentType('text/xml');
    $service->setBody('<?xml version="1.0"?'.'><methodCall><methodName>example.search</methodName></methodCall>');
            $service->send();
    if ($service->getResponseStatusCode() == 200)
            return $service->getResponseBody();
    else
            // The service responded with an error code 404, 500, etc.
            throw new Exception('The service responded with an error.');

 } catch (CAS_ProxyTicketException $e) {
    if ($e->getCode() == PHPCAS_SERVICE_PT_FAILURE)
            return "Your login has timed out. You need to log in again.";
    else
            // Other proxy ticket errors are from bad request format
     // (shouldn't happen) or CAS server failure (unlikely) so lets just
     // stop if we hit those.
            throw $e;
 } catch (CAS_ProxiedService_Exception $e) {
    // Something prevented the service request from being sent or received.
    // We didn't even get a valid error response (404, 500, etc), so this
    // might be caused by a network error or a DNS resolution failure.
    // We could handle it in some way, but for now we will just stop.
    throw $e;
 }

Definition at line 70 of file Post.php.

Member Function Documentation

◆ populateRequest()

CAS_ProxiedService_Http_Post::populateRequest ( CAS_Request_RequestInterface  $request)
protected

Add any other parts of the request needed by concrete classes

Parameters
CAS_Request_RequestInterface$requestrequest interface class
Returns
void

Definition at line 133 of file Post.php.

References CAS_Request_RequestInterface\addHeader(), CAS_Request_RequestInterface\makePost(), and CAS_Request_RequestInterface\setPostBody().

◆ setBody()

CAS_ProxiedService_Http_Post::setBody (   $body)

Set the body of this POST request.

Parameters
string$bodybody to set
Returns
void
Exceptions
CAS_OutOfSequenceExceptionIf called after the Request has been sent.

Definition at line 115 of file Post.php.

References CAS_ProxiedService_Http_Abstract\hasBeenSent().

◆ setContentType()

CAS_ProxiedService_Http_Post::setContentType (   $contentType)

Set the content type of this POST request.

Parameters
string$contentTypecontent type
Returns
void
Exceptions
CAS_OutOfSequenceExceptionIf called after the Request has been sent.

Definition at line 96 of file Post.php.

References CAS_ProxiedService_Http_Abstract\hasBeenSent().

Member Data Documentation

◆ $_body

string CAS_ProxiedService_Http_Post::$_body
private

The body of the this request

Definition at line 86 of file Post.php.

◆ $_contentType

string CAS_ProxiedService_Http_Post::$_contentType
private

The content-type of this request

Definition at line 79 of file Post.php.