PDA

View Full Version : واکشی اطلاعات از وب سریس غیر wsdl



کامروا
یک شنبه 10 اسفند 1393, 13:08 عصر
سلام

یک وب سریس هست به آدرس : (البته من بجای نام دامین اصلی، نوشتم 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 وصل شم به این وب سرویس و کد و نام شهرها رو در برنامه دریافت کنم.

لطفا بفرمایید که چطور میتونم با استفاده از SoapClient به یک وب سرویس غیر WSDL وصل شم؟

به صورت زیر نمیشه و خطا میده که این آدرس وب سرویس، WSDL نیست:

$result = new SoapClient('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>');

متن خطا :

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't find <definitions> in '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>' in /srv/www/htdocs/

ممنون میشم راهنمایی کنید.



شات از ساختار وب سرویس :

128980

MMSHFE
یک شنبه 10 اسفند 1393, 16:13 عصر
وقتی WSDL نداره نمیتونید با SOAP بهش وصل بشین. باید با همون file_get_contents معمولی یا نهایتاً با کمک curl بهش وصل بشین.

کامروا
یک شنبه 10 اسفند 1393, 17:00 عصر
وقتی WSDL نداره نمیتونید با SOAP بهش وصل بشین. باید با همون file_get_contents معمولی یا نهایتاً با کمک curl بهش وصل بشین.

با file_get_contetns کارم شد.
خیلی ممنون آقای شهرکی:چشمک: