Witam,
Od początku:
Srodowisko 5.3.13, po drugiej stronie Webservice w technologii SOAP 1.1. Próbuję się połączyć i wrzucić dość sporą strukturę.
Webserwis po drugiej stronie odpowiada mi:
"Przekazany dokument XML ma niepoprawną składnię."
Po podejrzeniu metodą __getLastRequest() pokazuje się coś takiego:
string(243) "<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://xxx.pl/yyy"><SOAP-ENV:Body><ns1:zzzz/></SOAP-ENV:Body></SOAP-ENV:Envelope>
"
Czyli że pod adres xxx.yy idzie metoda zzz, ale z zupełnie pustymi parametrami.
Pomyślałem zatem, że spróbuję zupełnie najprostszego rozwiązania - wyślę po prostu cokolwiek prostego, bo może na skomplikowanej strukturze się pomyliłem. Żeby się pojawiło w ciele te parametry, i bym mógł zacząć szukać błędu.
I nic... Efekt jak wyżej.
Nie wiem sam już, pierwszy raz piszę coś co wysyła do webservice'u, może ktoś mi podpowie, w którą stronę w ogóle szukać.
Najważniejsze elementy programu testowego:
<?php
ini_set("soap.wsdl_cache_enabled","0");
$cert="/sciezka/do/pliku/certyfikat.pem";
$serwer = "https://xxx.pl/service.svc?wsdl";
$opcje = array('trace'=>1,'local_cert'=> $cert,'passphrase' => 'oooo','proxy_host'=>'proxy','proxy_port'=>8080,'soap_version'=>SOAP_1_1);
$polacz = new SoapClient($serwer,$opcje);
var_dump($polacz->__getFunctions());
//tu bez problemu dostaję zrzut funkcji, między innymi tą do której ładuję dane
$wynik=$polacz->NazwaSerwisu(array('A'=>'1'));
var_dump ($wynik);
var_dump($polacz->__getLastRequest());
?>
No i jak pisałem bieda - wygląda, że request idzie w ogóle na pusto.
Jeśli ktoś ma jakiś pomysł, w którym kierunku szukać, to prośba o pomoc.
Pozdrawiam, Adam