Example #1
0
 /**
  * Sends a request using curl to the required URI
  *
  * @param string $method Remedy method to call
  * @param array $args key value array or arguments
  *
  * @throws Ncstate_Service_Exception
  *
  * @return stdClass object
  */
 protected function _request($wsdlEndpoint, $method, $args)
 {
     $soapArgs = new stdClass();
     // remove any unnecessary args from the query string
     foreach ($args as $key => $a) {
         $soapArgs->{$key} = $a != '' && !is_null($a) ? $a : '';
     }
     $wsdl = self::URI_BASE . '/' . $wsdlEndpoint;
     $this->_soapClient = new SoapClient($wsdl, array('trace' => true, 'cache_wsdl' => WSDL_CACHE_NONE));
     $headers = array();
     $authHeader = new stdClass();
     $authHeader->userName = $this->_username;
     $authHeader->password = $this->_password;
     $authInfoHeader = new SoapVar($authHeader, SOAP_ENC_OBJECT, 'AuthenticationInfo');
     $headers[] = new SoapHeader('AuthenticationInfo', 'AuthenticationInfo', $authInfoHeader);
     $this->_soapClient->__setSoapHeaders($headers);
     try {
         $result = $this->_soapClient->{$method}($soapArgs);
     } catch (Exception $e) {
         throw new Ncstate_Service_Exception('SOAP Error: ' . $e->getMessage());
     }
     return $result;
 }