2014-10-03 57 views
2

我是一名PHP新手,希望將一個網站與一些出租軟件集成在一起。他們使用非WSDL模式服務並提供了這段代碼,但我對「這是行動URI」有些困惑。我的猜測是這是我需要調用的方法。非WSDL PHP調用

$client = new SoapClient(NULL, array(
    'location' => '21.ip2.ip3.ip4/r2ws_v5/servlet/messagerouter', 
    'uri' => 'urn:this-is-the-action-uri', 
    'exceptions' => 1, 
    ); 

我可以調用它並獲得響應。

http://21.ip2.ip3.ip4:8080/r2ws_v5/jsp/UBS_GetAvailability.jsp 

reposnse開始是這樣的。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<SOAP-ENV:Body> 
<ns1:getAvailabilityByItemResponse xmlns:ns1="UBS/R2" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<response> 
<product> 
<productID xsi:type="xsd:string">TESTUB</productID> 
<level xsi:type="xsd:int">1</level> 
<description xsi:type="xsd:string"> 
<![CDATA[ testub ]]> 
</description> 
</level> 

你能給我的「URI」參數應該是在這種情況下,什麼任何想法或應該如何格式化?

回答

2

嗨,只需創建一個PHP文件,並將下面的代碼放入您的PHP文件。

$xmlRequest = "<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" . 
    "<SOAP:Body>" . 
    "<getAvailabilityByItem xmlns=\"UBS/R2WebServices/AvailabilityService\">" . 
     "<request>" . 
      "<detail xsi:type=\"xsd:string\">0</detail>" . 
      "<products>". 
       "<product>" . 
        "<type xsi:type=\"xsd:int\">0</type>" . 
        "<productID xsi:type=\"xsd:string\"><![CDATA[DE014SML]]></productID>" . 
        "<startDate xsi:type=\"xsd:date\">12/07/2014</startDate>" . 
        "<startTime xsi:type=\"xsd:timeInstant\">8:00 AM</startTime>" . 
        "<endDate xsi:type=\"xsd:date\">12/08/2014</endDate>" . 
        "<endTime xsi:type=\"xsd:timeInstant\">12:00 PM</endTime>" . 
       "</product>". 
      "</products>" . 
     "</request>" . 
    "</getAvailabilityByItem>" . 
    "</SOAP:Body>" . 
    "</SOAP:Envelope>" ; 

$location_URL = 'http://21.ip2.ip3.ip4/r2ws_v5/servlet/messagerouter'; 

$client = new SoapClient(null, array(
'location' => $location_URL, 
'uri' => "", 
'trace' => 1, 
    )); 
$order_return = $client->__doRequest($xmlRequest, $location_URL, '' , 1); 

希望你找到了解決辦法;)

+0

這爲我工作完美。我一直在努力用__soapCall撥打電話,但這樣更容易! – 2015-01-05 10:59:35