Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос XML с помощью PHP
 
 автор: Varer   (01.07.2009 в 12:01)   письмо автору
 
 

Как с помощью php (curl)
Отправить запрос XML (SOAP):

<?xml version="1.0" encoding="utf-8"?>
<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> <login xmlns="http://www.betfair.com/publicapi/v3/BFGlobalService/"> 
<request>
<locationId xmlns="">0</locationId> 
<password xmlns="">bfpassword</password> 
<productId xmlns="">82</productId> 
<username xmlns="">bfusername</username> 
<vendorSoftwareId xmlns="">0</vendorSoftwareId> 
</request> 
</login> 
</soap:Body> 
</soap:Envelope>


и получить ответ:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http:// www.betfair.com/publicapi/types/global/v3/" xmlns:xsd="http://www.w3.org/2001/ XMLSchema"> 
<soap:Body> 
<n:loginResponse xmlns:n="http://www.betfair.com/publicapi/v3/BFGlobalService/"> 
<n:Result xsi:type="n2:LoginResp">
<header xsi:type="n2:APIResponseHeader">
<errorCode xsi:type="n2:APIErrorEnum">OK</errorCode> 
<minorErrorCode xsi:nil="1"> 
</minorErrorCode> 
<sessionToken xsi:type="xsd:string">PKdvAW+ruIAg0s769DeM+vxY=</sessionToken>
<timestamp xsi:type="xsd:dateTime">2007-08-23T11:25:05.285Z</timestamp> 
</header>
<currency xsi:type="xsd:string">GBP</currency> 
<errorCode xsi:type="n2:LoginErrorEnum">OK</errorCode> 
<minorErrorCode xsi:nil="1"> </minorErrorCode>
<validUntil xsi:type="xsd:dateTime">0001-01-01T00:00:00.000Z</validUntil> 
</n:Result> 
</n:loginResponse> 
</soap:Body> 
</soap:Envelope>


Спасибо.

  Ответить  
 
 автор: werd   (01.07.2009 в 18:14)   письмо автору
 
   для: Varer   (01.07.2009 в 12:01)
 

Вопрос из серии ноу хау. Типа как взять киллограм свинца а получить килло золота.
Источник, тип данных и так далее. Побольше усилий в написание вопроса вложить. То что в хмл файле мало интиресно.

  Ответить  
 
 автор: Varer   (02.07.2009 в 09:57)   письмо автору
 
   для: werd   (01.07.2009 в 18:14)
 

Так понял, вот:
Мне надо с эмулировать протокол обмена SOAP.
Вот сюда отправляются данные:
http://www.betfair.com/publicapi/v3/BFGlobalService/


Вот эти данные:
<locationId xmlns="">0</locationId>  
<password xmlns="">bfpassword</password>  
<productId xmlns="">82</productId>  
<username xmlns="">bfusername</username>  
<vendorSoftwareId xmlns="">0</vendorSoftwareId>


В ответ я должен получить какие либо данные (пример выше).

Теперь есть код написанный на Perl, может кто поможет переложить на php:

my ($username,$password,$productId)=@_;
my $xml='

<?xml version="1.0" encoding="utf-8"?>
<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> <login xmlns="http://www.betfair.com/publicapi/v3/BFGlobalService/"> 
<request>
<locationId xmlns="">0</locationId> 
<password xmlns="">'.$password.'</password> 
<productId xmlns="">'.$productId.'</productId> 
<username xmlns="">'.$username.'</username> 
<vendorSoftwareId xmlns="">0</vendorSoftwareId> 
</request> 
</login> 
</soap:Body> 
</soap:Envelope>';
my $userAgent = LWP::UserAgent->new();
my $request = HTTP::Request->new(POST =>
'https://api.betfair.com/global/v3/BFGlobalService');
$request->header(SOAPAction => '"
https://api.betfair.com/global/v3/BFGlobalService
"');
$request->content($xml);
$request->content_type("text/xml; charset=utf-8");
my $resp = $userAgent->request($request);
my $content=$resp->content;
#print Dumper(\$content);

  Ответить  
 
 автор: werd   (05.07.2009 в 21:41)   письмо автору
 
   для: Varer   (02.07.2009 в 09:57)
 

Вообщем нужно использовать сокет для гет или пост. Вот только опыта с постом в пхп у меня нет. Есть кусок для метода гет могу дать. А вы уже перенастройте под пост.

  Ответить  
 
 автор: Varer   (06.07.2009 в 09:38)   письмо автору
 
   для: werd   (05.07.2009 в 21:41)
 

Спасибо, на выходных купил книжку pro php, там подобная задача решилась через soapclient

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования