SOAP over HTTP是XML over HTTP的一個子集,因爲我認爲SOAP也是一個xml,它可以確認模式(SOAP模式)嗎?我假設XML over HTTP服務可以使用GET或POST方法訪問。 SOAP over HTTP總是使用POST方法嗎?對於基於HTTP的XML,我認爲缺點是模式文件必須與所有使用者共享,而在SOAP over HTTP的情況下,它將是單個WSDL文件。是否有可能幫助讓我知道這兩者之間的差異和優勢?XML over HTTP與SOAP over HTTP之間的區別
回答
SOAP是XML的一個專門化語言,因爲它有一個模式,比如http://www.xmlsoap.org/soap/envelope/,而XML更通用。
對於使用GET,你可以通過閱讀這些討論:http://www.coderanch.com/t/463869/Web-Services/java/SOAP-request-HTTP,但基本上SOAP是通過POST做,雖然Axis2的似乎對獲得支持,作爲一種在世界SOAP工作,其中REST似乎排除。
而且,根據這篇IBM文章(http://www.ibm.com/developerworks/xml/library/x-tipgetr/index.html),SOAP 1.2引入了GET。如你所提到的,SOAP是一個標準,所以有一些工具可以很容易地使用它,包括動態客戶端生成,如這個問題所示,dynamic proxy soap web service client in java?,客戶端生成連接時需要的存根。
如果通過http使用XML,根據需要,它可能會更好,作爲傳輸數據的一種方式,但在使用情況中,我認爲使用JSON和REST似乎更好,但是,如果你想傳輸XML或發送XML,那麼你可以看看使用REST。
雖然GET具有大小限制(maximum length of HTTP GET request?),但POST會是更好的選擇,這可能是爲什麼SOAP幾乎總是POST。
WSDL不一定是WCF中的單個文件,如果我記得,有很多xml文件需要放在一起才能完成WSDL。
好處取決於你的用例是什麼,但我發現使用REST並允許用戶選擇類型是有用的,因爲它可以在JSON和XML之間切換,例如,並且是更好的選擇適用於HTTP over XML。
SOAP與舊技術集成時最好,因爲這可能是他們可以輕鬆使用的一切。例如,當我爲SAP集成創建Web服務時,根據ABAP程序員的能力,讓它不使用SOAP可能會更多工作。
您可能會發現使用這樣一個問題:
How SOAP and REST work with XML/JSON response?
以及有關JSON的web服務的討論和XML,你可能會有所幫助:
http://digitalbazaar.com/2010/11/22/json-vs-xml/
我忘了這個鏈接,因爲他們做了簡短的比較,但最終您可以輕鬆支持這兩者。在WCF中,我有一個擁有業務邏輯的控制器,必須有.aspx文件,一個用於SOAP,另一個用於REST,並且一些Web服務支持兩者,因爲這只是處理請求和響應差異的問題。所以,如果你想提供對這兩者的支持,並且有一個商業案例顯示它是有意義的,那麼選擇一個可以很容易做到的框架。
http://digitalbazaar.com/2010/11/22/json-vs-xml/
基本上,我們的目標是通過網絡向客戶提供服務。什麼客戶要連接?客戶如何找到最容易接觸的方式?請求中傳遞了多少數據?
這些類型的問題將導致您的需求的最佳解決方案。
- 1. HTTP servlet和SOAP over HTTP之間的區別是什麼?
- 2. Web服務 - SOAP與「XML over HTTP」
- 3. out_of_range,range_error和over/underflow_error之間的區別?
- 4. .net pop3 over http proxy
- 5. 如何區分「RTP over TCP」和「RTP over HTTP」?
- 6. SugarCRM over SOAP - V2
- 7. PHP Soap Over Proxys
- 8. XML-over-HTTP分析/測試框架
- 9. HTTP over socket使用HTTP代理
- 10. JSON-RPC over HTTP的python中
- 11. Android上的HTTP over UDT
- 12. HTTP over C#套接字
- 13. http://和http://之間的區別www
- 14. Web服務框架與定製的XML over HTTP協議?
- 15. LoadRunner Java over HTTP協議與WEB(http/html)協議
- 16. SOAP 1.2 over SSL + HTTP基本身份驗證或WS-Security?
- 17. 使用GZIP的HTTP over HTTP - 帶寬效率
- 18. XML和SOAP之間的區別
- 19. SOAP over Apache CXF中的WebSockets?
- 20. 使用JSON over HTTP作爲點對點?
- 21. 捲曲(pycurl)FTP over HTTP代理
- 22. Base64 Over HTTP POST丟失數據(Objective-C)
- 23. file:// android_assets /和http://someurl.com/之間的區別?
- 24. HTTP方法之間的區別
- 25. 「/ page」和「http://www.domain.com/page」之間的區別
- 26. JRMP vs HTTP之間的區別
- 27. 兩個http請求之間的區別
- 28. 工具,以幫助係數性能的改善與HTTP 2.0 over HTTP的1
- 29. HTML http請求和XML http請求之間安全處理的區別
- 30. JSON/XML RPC和HTTP api或TCP API之間的區別
非常感謝。非常有用和詳細的解釋,清除了我的困惑:) –
請我想知道如何通過HTTP POST發送SOAP請求。 是否整個信封張貼到請求正文中,例如可以通過以下方法調用完全讀入字符串? 'String entireSoapReequest = IOUtils.toString(request.getInputStream());' –
@SayoOladeji - 有一些肥皂工具可以幫助,但如果我記得它全部在請求的主體中,但要知道你可能想問一下這是一個新問題 –