SOAP 1.1,SOAP 1.2,HTTP GET& Android的HTTP POST方法?

时间:2011-12-21 10:24:10

标签: java android web-services http soap

我正在研究SOAP Web服务的代码,我想知道SOAP 1.1,SOAP 1.2,HTTP GET&的变化。 Android的HTTP POST方法,也是其中的首选方法。请提供其使用URL或其代码的示例。

谢谢

2 个答案:

答案 0 :(得分:80)

SOAP版本的差异

SOAP Version 1.1和SOAP Version 1.2都是万维网联盟(W3C)标准。可以部署Web服务,不仅支持SOAP 1.1,还支持SOAP 1.2。 SOAP 1.1中对SOAP 1.2规范所做的一些更改很重要,而其他更改则很小。

SOAP 1.2规范引入了对SOAP 1.1的一些更改。此信息不是对SOAP 1.1和SOAP 1.2的所有新功能或更改功能的深入描述。相反,这些信息突出了当前版本的SOAP之间的一些更重要的差异。

重要的SOAP 1.2规范的更改包括以下更新: SOAP 1.1基于XML 1.0。 SOAP 1.2基于XML信息集(XML Infoset)。 XML信息集(信息集)提供了一种使用XSD架构描述XML文档的方法。但是,信息集不一定使用SOAP 1.1所基于的XML 1.0序列化来序列化文档。这种描述XML文档的新方法有助于揭示其他序列化格式,例如二进制协议格式。您可以使用二进制协议格式将消息压缩为紧凑格式,其中可能不需要某些详细标记信息。

在SOAP 1.2中,您可以使用对底层协议的绑定规范来确定在底层协议数据单元中使用哪个XML序列化。 SOAP 1.2 - 第2部分中指定的HTTP绑定使用XML 1.0作为SOAP消息信息集的序列化。

除了使用HTTP之外,SOAP 1.2提供了正式定义传输协议的能力,只要供应商符合SOAP 1.2中定义的绑定框架即可。虽然HTTP无处不在,但它不像其他传输包括TCP / IP和MQ那样可靠。 SOAP 1.2提供了SOAP处理模型的更具体的定义,它消除了在没有Web服务互操作性(WS-I)配置文件的情况下可能导致互操作性错误的许多歧义。目标是显着降低使用SOAP 1.2实现的不同供应商之间的互操作性问题的可能性。 SOAP with Attachments API for Java(SAAJ)也可以作为发布SOAP请求的简单机制。 SAAJ规范的一个重大变化是能够表示SOAP 1.1消息和其他SOAP 1.2格式的消息。例如,SAAJ版本1.3引入了一组新的常量和方法,这些常量和方法更有利于SOAP头元素上的SOAP 1.2(例如getRole(),getRelay())。工厂上还有其他方法可供SAAJ创建适当的SOAP 1.1或SOAP 1.2消息。 SOAP 1.2的包络和编码模式的XML名称空间已更改。这些更改将SOAP处理器与SOAP 1.1和SOAP 1.2消息区分开来,并支持SOAP模式中的更改,而不会影响现有实现。 XML Web Services的Java体系结构(JAX-WS)引入了支持SOAP 1.1和SOAP 1.2的能力。因为JAX-RPC引入了在遍历运行时遍历SOAP消息的要求,所以需要在其适当的SOAP上下文中表示此消息。在JAX-WS中,对SAAJ 1.3的支持带来了许多额外的增强。

对于特定的android没有不同的POST和GET方法....但这里所有的都是差异

获取 GET方法将名称/值对附加到URL,允许您检索资源表示。这个问题的一大问题是URL的长度是有限的(大约3000个字符),如果页面上的表单中有很多内容,导致数据丢失,因此只有少量参数才能使用此方法。

这对我意味着什么?基本上,这使得GET方法在大多数情况下对大多数开发人员毫无价值。以下是另一种查看方式:如果表单使用大量参数,或者参数包含大量数据,则URL可能会被截断(并且很可能会提供今天的以数据为中心的站点) 。此外,在URL上传递的参数在浏览器的地址字段中可见(YIKES !!!),不是显示任何敏感(甚至非敏感)数据的最佳位置,因为您只是在乞求好奇的用户惹它。

发表 替代GET方法的是POST方法。此方法将名称/值对打包在HTTP请求的主体内,这使得URL更加清晰,并且对表单输出没有任何大小限制,基本上它是一个很容易使用的。 POST也更安全,但肯定不安全。尽管HTTP完全支持CRUD,但HTML 4仅支持通过其各种元素发出GET和POST请求。这种限制使得Web应用程序无法充分利用HTTP,并且为了解决这个问题,大多数应用程序都会重载POST来处理除资源检索之外的所有事情。

Link to original IBM source

答案 1 :(得分:18)

W3C发布的以下文档也描述了SOAP 1.1和1.2之间的区别: