[英]How to retrieve data from non-WSDL using SoapClient
沒有一個非wsdl Web服務URL。 此Web服務直接在XML格式的URL中采用一些身份驗證參數:
[Snip:我使用example
更改了我的實際域]
http://example.com/WSV2/StaticData.php?xml=<StaticDataRequest><Header><Code>TT4533</Code><Username>skyman211</Username><Password>ammkj43</Password></Header><Body><GetStaticData>cities</GetStaticData><ExtraParams><CountryCode>98</CountryCode></ExtraParams></Body></StaticDataRequest>
它以以下結構返回城市詳細信息:
<?xml version="1.0" encoding="UTF-8"?>
<StaticDataResponse>
<Country code="98" />
<Cities>
<City code="320">
<Name>Tehran</Name>
</City>
<City code="1907">
<Name>Shiraz</Name>
</City>
<City code="9971">
<Name>Bandar Abbas</Name>
</City>
</Cities>
</StaticDataResponse>
現在,我需要使用SoapClient訪問該URL並檢索城市詳細信息( code
和name
)。
我讀了許多有關使用SoapClient連接到非WSDL Web服務的主題,但是我沒有成功。
這是到目前為止我嘗試過的,並且我確定它是不完整的:
$URL = 'http://example.com/WSV2/StaticData.php?xml=<StaticDataRequest><Header><Code>TT4533</Code><Username>skyman211</Username><Password>ammkj43</Password></Header><Body><GetStaticData>cities</GetStaticData><ExtraParams><CountryCode>67</CountryCode></ExtraParams></Body></StaticDataRequest>';
$client = new SoapClient(null, array(
'location' => $URL,
'uri' => "http://example.com/WSV2/",
'trace' => 1,
));
$return = $client->__soapCall();
請告訴我如何通過SoapClient檢索城市code
和name
?
您必須使用file_get_contents()而不是SoapClient。 file_get_contents()
檢索您需要的所有內容:
$URL = 'http://example.com/WSV2/StaticData.php?xml=<StaticDataRequest><Header><Code>TT4533</Code><Username>skyman211</Username><Password>ammkj43</Password></Header><Body><GetStaticData>cities</GetStaticData><ExtraParams><CountryCode>67</CountryCode></ExtraParams></Body></StaticDataRequest>';
$data = file_get_contents($URL);
現在, $data
是一個字符串變量,其中包含Web服務檢索到的所有城市的詳細信息。
echo '<pre>' . print_r(htmlspecialchars($data), true) . '</pre>';
輸出:
<?xml version="1.0" encoding="UTF-8"?>
<StaticDataResponse>
<Country code="98" />
<Cities>
<City code="320">
<Name>Tehran</Name>
</City>
<City code="1907">
<Name>Shiraz</Name>
</City>
<City code="9971">
<Name>Bandar Abbas</Name>
</City>
</Cities>
</StaticDataResponse>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.