我正在编写SOAP Web服务的代码,我想知道SOAP 1.1,SOAP 1.2,Android的HTTP GET和HTTP POST方法的变体,并且是其中的首选方法。请提供其使用网址或代码示例。
谢谢
Answers:
SOAP版本的差异
SOAP版本1.1和SOAP版本1.2都是万维网联盟(W3C)标准。可以部署不仅支持SOAP 1.1而且还支持SOAP 1.2的Web服务。从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消息信息集的序列化。
SOAP 1.2除了使用HTTP之外,还提供了正式定义传输协议的功能,只要供应商遵守SOAP 1.2中定义的绑定框架即可。尽管HTTP无处不在,但它不如包括TCP / IP和MQ在内的其他传输可靠。SOAP 1.2提供了对SOAP处理模型的更具体的定义,该定义消除了在缺少Web服务互操作性(WS-I)概要文件时可能导致互操作性错误的许多歧义。目的是显着减少使用SOAP 1.2实现的不同供应商之间出现互操作性问题的机会。带有Java附件API的SOAP(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消息。信封和编码模式的XML名称空间已针对SOAP 1.2进行了更改。这些更改将SOAP处理器与SOAP 1.1和SOAP 1.2消息区分开来,并支持SOAP模式中的更改,而不会影响现有的实现。XML Web服务的Java体系结构(JAX-WS)引入了同时支持SOAP 1.1和SOAP 1.2的功能。由于JAX-RPC引入了在运行时遍历SOAP消息的要求,因此有必要在适当的SOAP上下文中表示此消息。在JAX-WS中,
没有特定的android的difine POST AND GET方法....但是这里所有的都是不同的
得到 GET方法将名称/值对附加到URL,从而使您可以检索资源表示形式。这样做的最大问题是URL的长度受到限制(大约3000个字符),如果您在页面上需要填写很多表格,则会导致数据丢失,因此该方法仅在参数数量较少的情况下才有效。
这对我意味着什么?基本上,这使GET方法在大多数情况下对大多数开发人员毫无价值。这是另一种查看方式:如果表单使用大量参数,或者参数包含大量数据,则URL可能会被截断(并且很可能会成为当今的以数据为中心的站点)。此外,在URL上传递的参数在浏览器的地址字段中可见(YIKES !!!),而不是显示任何类型的敏感(甚至非敏感)数据的最佳位置,因为您只是在请求好奇的用户弄乱它。
POST GET方法的替代方法是POST方法。此方法将名称/值对打包在HTTP请求的正文中,这使URL更加整洁,并且对表单输出没有大小限制,基本上是不费吹灰之力就可以使用的形式。POST也更安全,但肯定不安全。尽管HTTP完全支持CRUD,但是HTML 4仅支持通过其各种元素发出GET和POST请求。此限制使Web应用程序无法充分利用HTTP,并且要解决此问题,大多数应用程序都会超载POST来处理资源检索以外的所有事务。
W3C发布的以下文档还描述了SOAP 1.1和1.2之间的区别: