Potrzebuję skonsumować niektóre usługi webowe .NET asmx, które są obecnie implementowane w niektórych witrynach. Muszę utworzyć aplikację, która zużywa te usługi internetowe w taki sam sposób, jak robi to witryna internetowa. Są dwa problemy. Po pierwsze, nie mam żadnych specyfikacji na temat tych metod usług internetowych (wywołania, używany format i itp.). I po drugie, mam tylko zbudować aplikację, która używa JSON-framework do pobierania danych JSON z użycia interfejsu API. Zgaduję, że zostało to zrobione przy użyciu usług REST webservices :) Rozumiem, że w celu wykonania postów/dostaje się do serwera muszę skonstruować ciąg żądania, następnie przekazać go do serwera, uzyskać wyniki, przeanalizować je (XML lub JSON) i następnie obejrzyj je. Tak więc nie wiem, jak rozpoznać format serwisów internetowych w bieżącej witrynie. Widziałem źródło tej strony, zobaczyłem kilka plików kodu Javascript, które robią wiele tajemniczych sprawdzeń, sprawdzania poprawności i innych rzeczy. Jak zidentyfikować właściwy format?Jak odróżnić usługi internetowe SOAP lub REST?
Odpowiedz
Jeśli jest to usługa .NET ASMX, zawsze jest to SOAP. Usługa SOAP wyświetlana przez HTTP będzie zawsze używać komunikacji HTTP POST. Powinien także udostępnić plik .wsdl do konsumpcji i generowania kodu klienta, więc nie powinieneś się martwić o korzystanie z frameworku JSON lub orkiestrowanie własnych żądań HTTP do tej usługi sieciowej ... Twój wygenerowany Objective-C klient powinien się tym zająć.
This question seems to have the answers you need for doing this in Objective-C.
Jak @whaley mówi w swej odpowiedzi, wygląda na to, że masz do czynienia z usługą SOAP tutaj. Wiedząc, że pozwala ci to zrobić krok we właściwym kierunku, ale jeśli chcesz wejść z nim w interakcję, musisz zrobić coś więcej. Musisz znać szczegóły obsługiwanych operacji SOAP, schemat XML dla komunikatów żądania i odpowiedzi itp. Jeśli jesteś w stanie znaleźć plik WSDL, powinien on dostarczyć wszystkie te informacje.
Jeśli nie możesz wyśledzić pliku WSDL (niektóre usługi nie lubią ułatwiać tego z różnych powodów), to nadal możesz je znaleźć. Jeśli witryna naprawdę współdziała z interfejsem SOAP, możesz sprawdzić, jakie zapytania wysyła Twoja przeglądarka za pomocą dowolnej liczby narzędzi. W Safari włącz menu narzędzi programistycznych, a następnie pokaż inspektora sieci. Możesz zobaczyć szczegóły żądań HTTP i zobaczyć, co się dzieje. Firefox ma wtyczkę firebug, która potrafi zrobić to samo i więcej. Każda przeglądarka ma własne narzędzia dla programistów, ale musisz znaleźć odpowiednie narzędzie do swojej przeglądarki.
Słowo ostrzeżenia: Często strona internetowa, która współdziała z usługą back-end, nie korzysta bezpośrednio z usługi SOAP. Może wykorzystywać alternatywny i niepubliczny interfejs do wykonywania połączeń, których potrzebuje. Jeśli spojrzysz na żądania wysyłane przez twoją przeglądarkę i wygląda na komunikat SOAP (wiele elementów, takich jak SoapEnvenlope z oddzielnym XML żądania/odpowiedzi), to całkiem bezpiecznie jest założyć, że możesz replikować te komunikaty SOAP z obiektu c. Jeśli nie, możesz mieć pecha, chyba że możesz wyśledzić plik WSDL.
- 1. Co to są usługi internetowe REST?
- 2. Jak przetestować usługi internetowe?
- 3. Silnik aplikacji Google lub usługi internetowe Amazona
- 4. Usługa WWW REST usługi WSDL?
- 5. Klient usługi WSDL/SOAP systemu Android
- 6. Usługi internetowe z Google App Engine
- 7. Jak produkować XSD dla usługi SOAP WebService
- 8. Usługi sieciowe SOAP w Haskell?
- 9. Usługi internetowe Exchange: bardziej złożone filtry wyszukiwania
- 10. Usługi internetowe i zestawy usług Exchange
- 11. Wysyłanie informacji poufnych do usługi REST
- 12. Jak tworzyć serwisy internetowe w Zend Framework?
- 13. Kiedy SOAP ma więcej sensu niż REST?
- 14. . Usługi internetowe .NET bez ASP.NET/IIS?
- 15. Warunki usługi i wyścigu REST
- 16. SOAP a REST: pragmatyczne studia przypadków?
- 17. SOAP, żądania usługi http i adres URL
- 18. Nie można odwzorować odpowiedzi usługi SOAP
- 19. Zużywanie usługi REST z WCF
- 20. Używanie CORS + SOAP + WCF do usługi HTTPS
- 21. EDYTUJ SOAP usługi WCF przy użyciu IClientMessageInspector
- 22. Jak wykonać wywołanie usługi WWW wsdl SOAP z wiersza polecenia
- 23. Usługi sieciowe - SOAP a "XML przez HTTP"
- 24. Rozpoczęcie korzystania z usługi Rally REST webservice API
- 25. Jak hostować usługę SOAP i usługę REST w tym samym porcie?
- 26. Jak przekazywać dane uwierzytelniające do usługi sieciowej SOAP?
- 27. Usługi internetowe Exchange: wyszukiwanie wiadomości e-mail wysyłanych do adresata
- 28. Usługi sieciowe - REST a PHP JSON RPC
- 29. Usługi Web Service REST w języku C#
- 30. Używanie usługi Azure Active Directory jako usługi uwierzytelniania OAUTH2 dla usługi REST usługi rozruchu sprężynowego
Próbowałem wyświetlić więcej informacji z firefug firefug. Po śledzeniu żądań widzę, że żądanie dotyczy jakiegoś linku: http://www.website.com/GetQuote.aspx?units=1&len=1&width=1&height=1&weight=1&type=1&qty=1&cnt=GB&postcode=as123 wygląda jak usługa sieciowa REST. – Centurion