Tôi cần tiêu thụ một số dịch vụ web .NET asmx hiện đang được triển khai trong một số trang web. Tôi cần tạo một ứng dụng tiêu thụ các dịch vụ web đó theo cách tương tự như webpsite. Có hai vấn đề. Đầu tiên, tôi không có đặc điểm kỹ thuật về các phương thức webservice (các cuộc gọi, định dạng được sử dụng và vv). Và thứ hai, tôi chỉ xây dựng một ứng dụng sử dụng khuôn khổ JSON để nhận dữ liệu JSON từ bộ phim sử dụng API của nó. Tôi đoán rằng đã được thực hiện bằng cách sử dụng REST webservices :) Tôi hiểu rằng để thực hiện các bài viết/đến máy chủ, tôi cần phải xây dựng một chuỗi yêu cầu, sau đó chuyển nó tới máy chủ web, nhận kết quả, phân tích chúng (XML hoặc JSON) và sau đó xem chúng. Vì vậy, tôi không biết cách xác định định dạng của các dịch vụ web của trang web hiện tại. Tôi đã xem nguồn của trang web đó, đã thấy một loạt các tệp mã Javascript đang thực hiện rất nhiều công cụ kiểm tra, xác thực và vv bí ẩn. Vậy làm cách nào để xác định đúng định dạng?Làm thế nào để phân biệt nó là một SOAP hoặc REST webservice?
Trả lời
Nếu đó là dịch vụ .NET ASMX thì nó luôn là SOAP. Một dịch vụ SOAP được hiển thị trên HTTP sẽ luôn sử dụng các phương thức HTTP POST để liên lạc. Nó cũng sẽ hiển thị một tệp .wsdl để bạn tiêu thụ và tạo mã máy khách từ đó cũng như vậy, do đó bạn không phải lo lắng về việc sử dụng một khung công tác JSON hoặc phối hợp các yêu cầu HTTP của riêng bạn với dịch vụ web đó ... khách hàng nên chăm sóc điều đó cho bạn.
This question seems to have the answers you need for doing this in Objective-C.
Như @whaley nói trong câu trả lời của mình, có vẻ như bạn đang làm việc với một dịch vụ SOAP đây. Biết rằng cho phép bạn thực hiện một bước đi đúng hướng, nhưng nếu bạn muốn tương tác với nó, bạn sẽ cần phải làm nhiều hơn thế. Bạn sẽ cần phải biết chi tiết về các hoạt động SOAP mà nó hỗ trợ, lược đồ XML cho các yêu cầu và các thông báo phản hồi, vv Nếu bạn có thể tìm thấy tệp WSDL, nó sẽ cung cấp cho bạn tất cả thông tin đó.
Nếu bạn không thể theo dõi tệp WSDL (một số dịch vụ không muốn dễ dàng vì nhiều lý do), thì bạn vẫn có thể tìm ra. Nếu trang web thực sự tương tác bằng giao diện SOAP thì bạn có thể xem các yêu cầu mà trình duyệt của bạn gửi đi bằng bất kỳ số công cụ nào. Trong Safari, bật trình đơn công cụ dành cho nhà phát triển và sau đó hiển thị trình kiểm tra web. Bạn có thể xem chi tiết về các yêu cầu HTTP và xem những gì đang diễn ra. Firefox có plugin firebug có thể làm tương tự và hơn thế nữa. Mỗi trình duyệt đều có các công cụ riêng cho nhà phát triển, nhưng bạn sẽ phải tìm đúng công cụ cho trình duyệt của bạn.
Lời cảnh báo: Thường xuyên một trang web tương tác với dịch vụ back-end của bạn không thực sự sử dụng dịch vụ SOAP trực tiếp. Nó có thể được sử dụng một giao diện thay thế và không công khai để thực hiện các cuộc gọi cần thiết. Nếu bạn nhìn vào các yêu cầu mà trình duyệt của bạn gửi đi và nó giống như một thông báo SOAP (rất nhiều thứ như các thành phần SoapEnvenlope với XML yêu cầu/đáp ứng riêng biệt), thì bạn có thể sao chép các thông báo SOAP đó từ mục tiêu-c. Nếu không, bạn có thể không may mắn trừ khi bạn có thể theo dõi một tệp WSDL.
- 1. REST vs SOAP - SOAP thực sự an toàn hơn REST?
- 2. REST vs SOAP evolvability
- 3. AFNetworking POST tới REST webservice
- 4. Cách tạo XSD cho SOAP Webservice
- 5. Làm thế nào để tìm hiểu SOAP?
- 6. tiêu thụ SOAP webservice bằng cách sử dụng jquery
- 7. Làm thế nào để thực hiện một cuộc gọi dịch vụ Web SOAP từ lớp Java?
- 8. Làm thế nào để phân biệt Unload Event được kích hoạt bằng Refresh hoặc Window Close?
- 9. Làm thế nào để bạn đăng một khác biệt lên ReviewBoard thông qua API của nó?
- 10. Làm thế nào để gọi java Nghỉ ngơi WebService bên trong một Servlet
- 11. Làm thế nào để ảnh hưởng đến URL để truy cập vào một Delphi WebService đăng ký
- 12. SOAP :: Lite Tạo <c-gensym ..> làm thế nào để loại bỏ nó?
- 13. WSDL cho SOAP và WSDL cho REST và REST dựa trên JSON
- 14. JSON, REST, SOAP, WSDL và SOA: Tất cả chúng liên kết với nhau như thế nào
- 15. Làm thế nào để phát hiện nếu M7 là hiện nay, a.k.a nó là một iPhone 5S hoặc mới hơn?
- 16. Làm thế nào để phân tích phản ứng SOAP mà không có SoapClient
- 17. Làm thế nào để một nhị phân C++ thay thế chính nó?
- 18. Nếu SOAP bây giờ được coi là overengineered trên REST tại sao không WCF?
- 19. Cách phân biệt loại đó là ValueType hoặc RefereceType?
- 20. Spring 3.0 REST implementation hoặc Jersey?
- 21. Làm thế nào để kiểm tra Express/nút REST API phụ trợ với Advanced REST Client hoặc Postman?
- 22. Trong NSDateComponents, làm thế nào để bạn biết nếu nó là AM hoặc PM?
- 23. Làm cách nào để chuyển dữ liệu từ trình xử lý SOAP sang ứng dụng khách webservice?
- 24. SOAP so với REST: Nghiên cứu điển hình thực tế?
- 25. Làm thế nào để phân biệt nếu đối tượng bối cảnh nhất định là một Hoạt động hoặc một bối cảnh dịch vụ?
- 26. REST. Jersey. Làm thế nào để lập trình chọn kiểu trả về: JSON hoặc XML?
- 27. Làm thế nào để phân biệt kết quả UISearchBarDisplayController thành một detailViewController
- 28. Làm thế nào để xác định xem một ngoại lệ là một loại đặc biệt
- 29. Tại sao REST không có WSDL không giống như SOAP
- 30. jQuery Làm thế nào để phân biệt click() và dblcick() cho một phần tử DIV?
Tôi đã cố gắng xem thêm thông tin với firefox firebug. Sau khi theo dõi các yêu cầu, tôi thấy rằng yêu cầu được thực hiện cho một số liên kết: http://www.website.com/GetQuote.aspx?units=1&len=1&width=1&height=1&weight=1&type=1&qty=1&cnt=GB&postcode=as123 trông giống như REST webservice. – Centurion