2014-01-22 3 views
0

Я хочу подключить веб-службы кэширования Intersystems с помощью php. Я не знаю, как использовать заголовки мыла для этой работы. Используя только сеанс мыла, я могу установить сеанс csp в CSP. Может ли кто-нибудь помочь мне установить заголовки мыла для этого процесса? или объяснить, как подключать веб-службы из кеша и php, используя простейший способ?Как подключить веб-службы кеширования Intersystems и PHP?

Спасибо заранее!

PHP код:

SoapManager.php:

<?php 
    class SoapManager { 

     function execute($webService, $method, $parameters) 
     { 


      $URL = 'http://localhost:57772/csp/user/'.$webService.'.cls?wsdl=1'; 
      echo $URL; 
      //CREATE THE CLIENT INSTANCE 

       $client = new SoapClient($URL); 

      //$client = new SoapClient("http://192.168.101.202:57772/enterprise/drm$soapAddress/GHIS.$serviceName.cls?WSDL"); 

      $result = $client->__soapCall("$method",array($parameters)); 
      return $result; 
     } 
} 


?> 

Client.php:

<?php 

require_once "SoapManager.php"; 

$params = ''; 
$params = array(
'Name' => 'Subash' 
); 

//$getAuthDetail = nusoap("MyApp.MyService","TestName",$params); 
$SoapManager = new SoapManager(); 
$addCommentResult = $SoapManager->execute("MyApp.MyService","TestName",$params);  

$params = ''; 
$params = array(

); 

//$getAuthDetail = nusoap("MyApp.MyService1","Test",$params); 

$addCommentResult = $SoapManager->execute("MyApp.MyService1","Test",$params); 


?> 

MyApp.MyService.cls:

Class MyApp.MyService Extends %SOAP.WebService [ ProcedureBlock ] 
    { 

    /// Name of the WebService. 
    Parameter SERVICENAME = "MyService"; 

    /// TODO: change this to actual SOAP namespace. 
    /// SOAP Namespace for the WebService 
    Parameter NAMESPACE = "http://tempuri.org"; 

    /// Namespaces of referenced classes will be used in the WSDL. 
    Parameter USECLASSNAMESPACES = 1; 

    Parameter SOAPSESSION = 1; 

    //Parameter XMLIGNOREINVALIDATTRIBUTE=1; 

    //Parameter XMLIGNOREINVALIDTAG=1; 

    /// TODO: add arguments and implementation. 
/// Test 
    Method TestName(Name As %String) As %String [ WebMethod ] 
    { 
s ^testg=%session.SessionId 
;h 10 
Quit Name 
    } 

    } 
+0

Пожалуйста дайте более подробно на ваш вопрос вы хотите PHP, чтобы сделать запрос к веб-службе кэширования (то есть, PHP является клиентом, а кэш - сервером)? Или наоборот? Поскольку ваш вопрос охватывает несколько языков, возможно, было бы хорошо сказать, какие заголовки SOAP вам нужны для установки, и мы можем помочь вам установить их. –

+0

@BrandonHorst PHP - это Cli и кеш - это сервер. Я создаю веб-службы на кеше и задаю параметр SOAPSESSION = 1. Тогда только он вернет сессию csp. Теперь, используя PHP-клиент, я хочу установить Request и Get Response с помощью SoapHeader. Подождите, я обновлю код здесь для справки. – ragu

ответ

1

Во-первых: генерируют новый MyApp.MyService.cls с использованием w Изард. Пожалуйста, позаботьтесь о имени метода, указанном в мастере. (Ваш пример два Diferent имен (Test, АСМАП)

Во-вторых, использовать это в коде PHP:.

//$result = $client->__soapCall("$method",array($parameters)); 

$result = $client->TestName($parameters); 

или

$result = $client->TestName(array('Name' => 'Subash'));