Broadcasting myself :: Данаил Недялков
блог на Данаил Недялков
Всеки може да отстъпи, само смелите продължават.
SOAP, WSDL с PHP5
Автор bliznaka | 08.02.2009 | Категория Направи си сам
Наскоро ми се наложи да преработя един импортер на продукти, тъй като клиентите ползват Java, а импортерът ми беше на PHP. За да комуникират помежду си трябваше някакво междинно ниво… SOAP беше това от което се нуждаех.
Паралелно ще давам PHP код и обяснения:
Тъй като клиентите имаха basic authentication трябваше да задам следните параметри, които преди това запазвам в масив:
// Basic Authentication, exceptions and tracing settings
$params = array(
“login” => ‘потребителско-име’,
“password” => ‘потребителска-парола’,
“trace” => 1,
“exceptions” => 1
);
След това правим връзка към SOAP услугата на клиента:
// WSDL връзка за достигане до XML данните
$client = new SoapClient(“http://example.com:12345/?wsdl”, $params);
Задаваме namespace-а на услугата като нов хедър:
$namespace = ‘http://example.com/’;
$name_header = new SoapHeader($namespace, ‘name’, ‘ExampleBinding’);
Запазваме всички хедъри (в случая е само един) в масив, който подаваме като параметър на метод за сетване на хедъри:
$headers = array($name_header);
$client->__setSoapHeaders($headers);
След това създаваме масив, съдържащ всички параметри и стойностите им, които очаква функцията на клиента. В случая клиентската функция getData очаква първи параметър ids и втори параметър type:
$params1 = array(‘ids’ => $stock_id, ‘type’ => ‘csv’);
След това благодарение на WSDL може директно да извикаме клиентската функция като метод на нашия обект $client, $client->getData($params1), като не забравяме да подадем масива с очакваните параметри:
try {
$data = $client->getData($params1);
if (!empty($data->details)) {
// следва логика за обработка на данните
…
}
} catch (SoapFault $exception) {
echo $exception;
}
// WSDL.
Ако има някакъв exception, то той бива показан.
Това е PHP клиентската част на SOAP (WSDL) услугата. В следващата статия ще покажа как да създадете сървърна услуга, но отново на PHP, което значи че клиентската част може да е на JAVA или друг език, поддържащ SOAP (WSDL).
Категории
- Видео (34)
- Видео на седмицата (17)
- Технологии (3)
- Трейлъри (25)
- Из офиса (2)
- Направи си сам (3)
- Новости (3)
- Портфолио (7)
- Проекти (8)
Архиви
- February 2012
- January 2012
- December 2011
- October 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- January 2011
- December 2010
- November 2010
- October 2010
- July 2010
- May 2010
- February 2010
- December 2009
- September 2009
- August 2009
- May 2009
- February 2009
- January 2009
- December 2008
- October 2008