Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][XML]Serwisy Łebowe SOAP.Jak napisać klienta ?
Forum PHP.pl > Forum > Przedszkole
hop
Witam i pozdrawiam

Mam pewną książkę jest w niej opisany dostęp do serwisu Łebowego Amazon.W książce jest między innymi taki tekst:

Cytat
Web services are getting a lot of hype. In the end, however, they are simply an HTTP request and response whereby each may be carrying XML data. So using a Web service from Cocoa is simply a matter of being able to send HTTP requests and receive responses. It also may require generating and parsing XML.


i jest kawałek programu:
Kod
// Get the string and percent-escape for insertion into URL NSString *input = [searchField stringValue]; NSString *searchString =
[input stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSLog(@"searchString = %@", searchString);
// Create the URL (Long string broken into several lines is OK) NSString *urlString = [NSString stringWithFormat:
@"http://ecs.amazonaws.com/onca/xml?"
@"Service=AWSECommerceService&"
@"AWSAccessKeyID=%@&"
@"Operation=ItemSearch&"
@"SearchIndex=Books&"
@"Keywords=%@&"
@"Version=2007-07-16", AWS_ID, searchString];
NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];


Teraz moje pytanie: Czy w ten sposób można wywołać odpowiedź kaźdego serwisu, przy pomocy tego przydługiego adresu URL wpisanego np. w przeglądarce?
Spawnm
nie, musi być napisany soap server u danej strony + odpowiedni wml.

http://pl.php.net/soap
korro
Nie można.
Serwis internetowy musi udostępniać tak zwane API.
Dobrym przykładem będzie tu allegro. Strona działa tak jak działa, ale jej twórcy udostępnili także zbiór funkcji, których można używać z kodzie, w zewnętrznych aplikacjach, bez 'wchodzenia' na stronę przez przeglądarkę.
Popatrz sobie na to: http://webapi.allegro.pl/
Np. http://webapi.allegro.pl/uploader.php?apiM...doGetUserItems# pozwala pobrać wszystkie aukcje danego użytkownika allegro.
hop
Dziękuję za posty

Cytat
Nie można.
Serwis internetowy musi udostępniać tak zwane API.
Dobrym przykładem będzie tu allegro. Strona działa tak jak działa, ale jej twórcy udostępnili także zbiór funkcji, których można używać z kodzie, w zewnętrznych aplikacjach, bez 'wchodzenia' na stronę przez przeglądarkę.
Popatrz sobie na to: http://webapi.allegro.pl/
Np. http://webapi.allegro.pl/uploader.php?apiM...doGetUserItems# pozwala pobrać wszystkie aukcje danego użytkownika allegro.


No tak musi być API ale jak jest tj w przypadku amazon to można zawsze przy pomocy przeglądarki wpisać w pasku adresu jakiś specjalny kod i uzskać z serwisu plik XML tak?

A czy w przypadku Allegro też się tak da lub innych serwisów?

Np. http://ecs.amazonaws.com/onca/xml? coś tam & coś tam & itd
korro
Cytat(hop @ 1.12.2009, 22:32:16 ) *
No tak musi być API ale jak jest tj w przypadku amazon to można zawsze przy pomocy przeglądarki wpisać w pasku adresu jakiś specjalny kod i uzskać z serwisu plik XML tak?
A czy w przypadku Allegro też się tak da lub innych serwisów?

Pomyśl, czy jeśli zrobisz stronę na której jest formularz do wysyłania maili, to wpisanie czegoś w przeglądarkę wygeneruje XMLa?
Nie, nie wygeneruje. Twórcy musieli to przewidzieć i dać taką możliwość.
hop
Ale serwisy łebowe obsługują wywołania przez HTTP i w odpowiedzi na request wysyłają XML? Ja nie mówie że wszystkie serwisy internetowe ale np amazon wysyła. więc pytam czy np świstak albo allegro ?


I chciałbym wiedzieć jak powinien wyglądfać format tej wiadomości /http.

Czy format wiadomości HTTP oraz adres jest zapisany w pliku WSDL ?

Dobrze

Znam Allegro API ale jak wywoływać te funkcje np doLogin z kodu ?
thek
Skoro znasz API to niby co za problem odpowiednio spreparować wywołanie, jakie przyjmie serwer? Nawet nie raczyłeś poczytać nic o SOAP, bo byś takich pytań nie zadawał. To najczęściej odpowiednio utworzony link i nic więcej.

I nie pisz, że coś znasz skoro nie znasz. Ja mam 1.5 metra obok siebie w biblioteczce dzieła Plutarcha, Kartezjusza, Platona, a nie czyni to ze mnie wybitnego filozofa choć je czytałem. Między przeczytaniem a zrozumieniem jest przepaść. Ksiązki u mnie stoją na podłodze, bo na półkach i w szafach już się nie mieszczą. Czy to czyni ze mnie oczytanego człowieka? U mnie nawet podręcznik do CSS leży w kiblu obok szczotki do WC, bym miał co czytać biggrin.gif A jeszcze niedawno był tam "Oficjalny podręcznik do Photoshopa" smile.gif A bynajmniej nie uważam się za znającego obróbkę w tym programie, choć mam do niego 2 dobre książki. Po przejrzeniu jednej co najwyżej możesz sobie wyrobić zdane na temat narzędzia lub języka, ale poznanie go zajmuje miesiące lub lata praktyki. Tak więc powiedzenie "znam API Allegro" i w tym samym zdaniu stwierdzenie, że nie wiesz jak wywołać doLogin jest raczej komiczne, jeśli nie tragiczne. W ten sposób podchodząc do sprawy to piszący tutaj już dawno zarejestrowani userzy, moderatorzy i zarząd znają wszystkie technologie webowe, większość języków programowania świata i ogólnie nikt nie jest godzien by na nich spojrzeć, a co dopiero się zwrócić o pomoc biggrin.gif
korro
@thek: jednak jest coś z filozofa :]

Wracając do tematu.
Zamysłem SOAP, czy szerzej API, RPC itd. jest właśnie to, żeby można było z nich korzystać niezależnie od języka programowania.
Gdyby autor wątku pokusił się choć o kliknięcie w 'See samples' na stronie wspomnianej funkcji doLogin, zobaczyłby to, o co pyta: przykłady kodu, który wywołuje tę funkcję.
hop
Witam. Mam nowe pytanie.Z tamtym się już uporałem.Czy zawsze w wiadomości SOAP konieczny jest nagłówek HTTP i co powinno w nim być? Jaka powinna być forma tego nagłówka? Szukałem ale w różnych miejscach jest napisane że w zasadzie w requestach nie jest to w 100% obowiązkowe natomiast w respondach tak.Chciałbym wiedzieć jak to jest.Każda informacja mile widziana.

A dobra.Dzięki.Już wszystko załatwione. czarodziej.gif
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.