The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"PHP и веб-сервисы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"PHP и веб-сервисы" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 15-Сен-05, 17:33  (MSK)
Небольшой вопрос по веб-сервисам ...
Есть веб-сервис http://www.crossroam.com/BARSWS/WS.asmx

Есть клиент на php который не работает =) Не могу понять в чем замес

Сам код
<?php
$debug = 1;
ini_set("soap.wsdl_cache_enabled", "0"); // disable WSDL cache
$parms = array(new SoapParam(
                /* Значение параметра */
                "RUS93",
                /* Имя параметра */
                "WispCarrierCode"
        ));
$qopts = array("soapaction"=>"http://www.t-systems.com/getAllowedProviders",'uri'=>"http://www.t-systems.com/getAllowedProviders");
$opts = array('location' => "http://www.crossroam.com/BARSWS/WS.asmx",
                                     'uri'      => "http://www.t-systems.com",
                                     'trace'      => 1,
                                     'exceptions' => 1,
                                   'style'    => SOAP_DOCUMENT,
                                   'use'      => SOAP_LITERAL);
$client = new SoapClient(null, $opts);
$out = $client->__call('getAllowedProviders', $parms, $qopts);
echo "<pre>" . htmlspecialchars($client->__getLastRequest()) . "</pre>";
echo "<pre>" . htmlspecialchars($client->__getLastResponse()) . "</pre>";
var_dump($out);

?>

В итоге если смотреть примеры xml-сообщений тут http://www.crossroam.com/BARSWS/WS.asmx?op=getAllowedProviders

И взять то что у меня, то мы увидим что запросы отличаются ... Если изменить style/use на RPC/ENC то вид становится более менее похожий но в ответ идет все то же пустое сообщение ...

Запрос
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <WispCarrierCode>RUS93</WispCarrierCode>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Запрос RPC/ENC
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.t-systems.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getAllowedProviders>
<WispCarrierCode xsi:type="xsd:string">RUS93</WispCarrierCode>
</ns1:getAllowedProviders>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Ответ:
<?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" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soap:Header>
     <wsa:Action>http://www.t-systems.com/getAllowedProvidersResponse</wsa:Action>
        <wsa:MessageID>uuid:ba4ed5ab-0e18-427b-adf8-a61a6fa7c596</wsa:MessageID>
        <wsa:RelatesTo>uuid:074a0b4d-c866-45c5-8b13-4e51ee42305c</wsa:RelatesTo>
     <wsa:To>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:To>
        <wsse:Security>
            <wsu:Timestamp wsu:Id="Timestamp-6a368585-4d8f-418d-a1c9-119fa5eb12e3">
                <wsu:Created>2005-09-14T11:35:25Z</wsu:Created>
                <wsu:Expires>2005-09-14T11:40:25Z</wsu:Expires>
            </wsu:Timestamp>
        </wsse:Security>
    </soap:Header>
    <soap:Body>
        <getAllowedProvidersResponse xmlns="http://www.t-systems.com">
            <getAllowedProvidersResult />
            <getAllowedProvidersResponse>
    </soap:Body>
</soap:Envelope>

У кого есть опыт работы с веб-сервисами из php средствами штатного soap?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "PHP и веб-сервисы" 
Сообщение от dev26th.net Искать по авторуВ закладки on 19-Сен-05, 12:13  (MSK)
>Запрос RPC/ENC
><?xml version="1.0" encoding="UTF-8"?>
><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.t-systems.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
><SOAP-ENV:Body>
> <ns1:getAllowedProviders>
> <WispCarrierCode xsi:type="xsd:string">RUS93</WispCarrierCode>
> </ns1:getAllowedProviders>
></SOAP-ENV:Body>
></SOAP-ENV:Envelope>

Здесь у WispCarrierCode не указан namespace, поэтому сервис его и не видит.

>$parms = array(new SoapParam(
>    /* Значение параметра */
>    "RUS93",
>    /* Имя параметра */
>    "WispCarrierCode"
>        ));

Попробуй для "WispCarrierCode" как-то указать namespace "http://www.t-systems.com" (не знаю, как это сделать в php); или, в качестве хака, заменить на "ns1:WispCarrierCode".

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "PHP и веб-сервисы" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 19-Сен-05, 15:17  (MSK)
>>Запрос RPC/ENC
>><?xml version="1.0" encoding="UTF-8"?>
>><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.t-systems.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>><SOAP-ENV:Body>
>> <ns1:getAllowedProviders>
>> <WispCarrierCode xsi:type="xsd:string">RUS93</WispCarrierCode>
>> </ns1:getAllowedProviders>
>></SOAP-ENV:Body>
>></SOAP-ENV:Envelope>
>
>Здесь у WispCarrierCode не указан namespace, поэтому сервис его и не видит.
>
>
>>$parms = array(new SoapParam(
>>    /* Значение параметра */
>>    "RUS93",
>>    /* Имя параметра */
>>    "WispCarrierCode"
>>        ));
>
>Попробуй для "WispCarrierCode" как-то указать namespace "http://www.t-systems.com" (не знаю, как это сделать
>в php); или, в качестве хака, заменить на "ns1:WispCarrierCode".

Огромнейшее спасибо!!!!! Действительно замена WispCarrierCode на ns1:WispCarrierCode помогла ...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру