/** * 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; }