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).
Zeitgeist II Addendum
Автор bliznaka | 01.02.2009 | Категория Видео на седмицата
Това е втората част на Zeitgeist – The movie
Zeitgeist – The movie
Автор bliznaka | 01.02.2009 | Категория Видео на седмицата
Категории
- Видео на седмицата (5)
- Из офиса (1)
- Направи си сам (3)
- Новости (2)
- Портфолио (3)
- Проекти (5)