Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak połączyć stronę internetową z web service?
Forum PHP.pl > Forum > Przedszkole
Remki
Hej

Mam napisany web service na platformie .NET, chciałbym się dowiedzieć, czy jest możliwość połączenia się z nim oraz używania jego metod na stronie napisanej w PHP.
Osobiście nie umiem programować w php, nie wiem czy coś takiego jest możliwe, jeśli jednak jest i ktoś zechciałby mi pomóc prosiłbym o gotowy kawałek kodu, który:

1. Nawiązuje połączenie z web servicem
2. Uruchamia funkcję, znajdującą się na web servicie

Wywoływane funkcje zawierają argumenty typu int/string, nie zwracają nic.

Byłbym wdzięczny za wszelką pomoc. Jeżeli założyłem temat w niewłaściwym dziale bardzo przepraszam i upszejmie proszę moda o przemieszczenie go w odpowiednie miejsce.
gac3k
To Ci może pomóc

http://www.php.net/manual/en/class.dotnet.php

ale za darmo to nikt Ci gotowego kodu raczej nie napisze, tym bardziej że to nie najłatwiejsza sprawa
Remki
Hmm, chyba nie do końca o to mi chodziło, ale znalazłem coś takiego

http://www.php.net/manual/en/class.soapclient.php

Tam jest przykładowy program client, czy to będzie działać jeżeli stworzę zmienną tak

$sc = new SOAP_Client("http://localhost/SOAP/Server.ASMX");

Następnie, jak rozumiem:
sc->call...
Wywołuje metodę "now" przesyłając jej argumenty znajdujące się w array i "coś", co to jest to coś?
gac3k
Nie wiem do końca do czego służy trzeci parametr, jednakże w man jest coś takiego:

Kod
public mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )


czyli pierwszy argument to nazwa metody (to wiesz), druga to tablica argumentów (to też wiesz) a reszta jest opcjonalna więc prawdopodobnie może być to puste. Ale nie wiem czym jest ten twój web service i co robi smile.gif

Nie wiem do końca do czego służy trzeci parametr, jednakże w man jest coś takiego:

Kod
public mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )


czyli pierwszy argument to nazwa metody (to wiesz), druga to tablica argumentów (to też wiesz) a reszta jest opcjonalna więc prawdopodobnie może być to puste. Ale nie wiem czym jest ten twój web service i co robi smile.gif
Remki
No, uzyskałem połączenie, oto kod który to realizuje:

<?php
$sc=new SoapClient("http://localhost/Service1.asmx?wsdl");
$parameters=array();
$result=$sc->__call("testphp",$parameters);
$result=$result->testphpResult;
print $result;
?>

Funkcja call zwraca clase stdClass, któa to jest dokumentem XML, aby wyprintować wynik wyciągam go w lini 5.

Wynik: 17,0579490730603 51,1110680841382;

Pytanie: Nigdzie nie widziałem czegoś takiego, więc zakładam zę dzieje się to automatycznie, ale czy przypadkiem nie muszę w jakiś sposób zamknąc połączenia z web service?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.