Public Member Functions | Protected Member Functions | Private Attributes

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

List of all members.

Public Member Functions

 setContentType ($contentType)
 setBody ($body)

Protected Member Functions

 populateRequest (CAS_RequestInterface $request)

Private Attributes

 $_contentType
 $_body

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 68 of file Post.php.


Member Function Documentation

CAS_ProxiedService_Http_Post::populateRequest ( CAS_RequestInterface request  )  [protected]

Add any other parts of the request needed by concrete classes

Parameters:
CAS_RequestInterface $request
Returns:
void

Reimplemented from CAS_ProxiedService_Http_Abstract.

Definition at line 120 of file Post.php.

References CAS_RequestInterface::addHeader(), CAS_RequestInterface::makePost(), and CAS_RequestInterface::setPostBody().

CAS_ProxiedService_Http_Post::setBody ( body  ) 

Set the body of this POST request.

Parameters:
string $body
Returns:
void
Exceptions:
CAS_OutOfSequenceException If called after the Request has been sent.

Definition at line 107 of file Post.php.

References CAS_ProxiedService_Http_Abstract::hasBeenSent().

CAS_ProxiedService_Http_Post::setContentType ( contentType  ) 

Set the content type of this POST request.

Parameters:
string $contentType
Returns:
void
Exceptions:
CAS_OutOfSequenceException If called after the Request has been sent.

Definition at line 93 of file Post.php.

References CAS_ProxiedService_Http_Abstract::hasBeenSent().


Member Data Documentation

string CAS_ProxiedService_Http_Post::$_body [private]

The body of the this request

Definition at line 84 of file Post.php.

string CAS_ProxiedService_Http_Post::$_contentType [private]

The content-type of this request

Definition at line 77 of file Post.php.