Krzysztof Białkowski

Krzysztof Białkowski Software Developer
(C# .NET)

Temat: SoapClient a https/http

Hej,
Mam pytanko :
Wsdl jest wystawiony na https:
https://test.pl/TestWS.asmx

Natomiast sama metoda stoi http:


<wsdl:service name="Public">
<wsdl:port name="Test" binding="tns:Test">
<soap12:address location="http://test.pl/TestWS.asmx" />
</wsdl:port>


Pierwszy raz widzę takie rozwiązanie jednak analizując logi tcpdumpa widzę, że połaczenie na port 443(ssl)
następuję prawidłowo, natomiast próba wywołania metody z portu 80 skutkuje juz w connection timeout.
Czy ktoś wie może czy do SoapClienta należy dopisać jakieś dodatkowe parametry ?
Mój konstruktor wyglada tak :


$params= array(
'local_cert' =>'cert.pem',
'allow_self_signed' => true,
'trace'=>true,
'verify_peer' => 0,
'exceptions' => true,
'cache_wsdl' =>WSDL_CACHE_NONE
);

$client = new SoapClient("$adres1",$params);
$client->JakasMetoda($zm1);
Marcin Molga

Marcin Molga Senior Solution
Architect, IBM.

Temat: SoapClient a https/http

Pierwszy raz widzę takie rozwiązanie jednak analizując logi tcpdumpa widzę, że połaczenie na port 443(ssl)
następuję prawidłowo, natomiast próba wywołania metody z portu 80 skutkuje juz w connection timeout.
Czy ktoś wie może czy do SoapClienta należy dopisać jakieś dodatkowe parametry ?
Mój konstruktor wyglada tak :

Jeżeli to idzie po https, to możliwe, że konieczne jest uwierzytelnianie, ale wtedy dostałbyś raczej AuthenticationException, chociaż widziałem już wyjątki, które nie miały nic wspólnego z rzeczywistością.

W przypadku uwierzytelniania użyj parametrów 'login' i 'password':


$params= array(
'login' => self::USERNAME,
'password' => self::PASSWORD,
'local_cert' =>'cert.pem',
'allow_self_signed' => true,
'trace'=>true,
'verify_peer' => 0,
'exceptions' => true,
'cache_wsdl' =>WSDL_CACHE_NONE
);

$client = new SoapClient("$adres1",$params);


Poza tym: czy to jest Twój serwis czy ktoś Ci go udostępnia? Próbowałeś łączyć się zewnętrznymi narzędziami, jak soap UI czy WebServices Explorer? Działa?

BTW. Rozwiązałeś swój problem z innego wątku (prawdopodobnie certyfikat)?

Pozdrawiam.
Krzysztof Białkowski

Krzysztof Białkowski Software Developer
(C# .NET)

Temat: SoapClient a https/http

W tamtym wątku kwestią był brak dogrania certa do /etc/ssl/certs.
Login i password nie są potrzebne, uwierztelnianie ma załatwiać wlasnie ten cert.
WebSerwis nie jest mój niestesty.
Innymi narzędziami (nusoap) próbowałem i to samo.
Marcin Molga

Marcin Molga Senior Solution
Architect, IBM.

Temat: SoapClient a https/http

Krzysztof Białkowski:
Login i password nie są potrzebne, uwierztelnianie ma załatwiać wlasnie ten cert.

OK.
Innymi narzędziami (nusoap) próbowałem i to samo.

nusoap to chyba biblioteka do PHP.

Spróbuj połączyć się z WS bez pośrednictwa PHP którymś z narzędzi:
1. wbudowany w eclipse WebService Explorer - tylko nie ma go w edycji dla PHP :) można bez problemu doinstalować WS do wersji z PDT: http://www.eclipse.org/webtools/ws/

2. soap ui: dostępny jako aplikacja stand alone i plugin: http://sourceforge.net/projects/soapui/files/

Pozdrawiam.
Krzysztof Białkowski

Krzysztof Białkowski Software Developer
(C# .NET)

Temat: SoapClient a https/http

Serwer z którego łącze się do WS stoi na debianie, więc jedyne co mam to wbite na konsole ; )
Czy znasz może jakieś konsolowe odpowiedniki ?
Marcin Molga

Marcin Molga Senior Solution
Architect, IBM.

Temat: SoapClient a https/http

Krzysztof Białkowski:
Serwer z którego łącze się do WS stoi na debianie, więc jedyne co mam to wbite na konsole ; )
Czy znasz może jakieś konsolowe odpowiedniki ?

Niestety nie, pracuję w normalnym IDE :)

Ale możesz spróbować łączyć się ze swojego komputera, a dopiero potem deployment rozwiązania na serwer - chyba, że masz jakieś ograniczenia związane z bezpieczeństwem, typu dozwolone IP.

Pozdrawiam.

Następna dyskusja:

Dołaczanie po http




Wyślij zaproszenie do