网上看了好多代码,直接复制过来好像就能用,可是总是用的不够坦荡,毕竟是拿来主义,因为不懂里面具体的内容。也不知道怎么处理,接下来我就讲解具体的解决思路与关键点。
咱们用的服务器编写代码去访问另一个服务。而且这个服务是webservice服务。那就要先了解底层是用的什么技术这个问题?用的是SOAP(简单对象访问协议),具体点就是HTTP+XML。
在这里先了解下什么是HTTP,http是如何获取服务器上的资源的,服务器请求是怎样的?答:客户端 发送请求,这个请求是包含请求行,请求头,请求体的 ,是打包在一起发给 服务器的。其中请求头可以自定义好多东西,其中最重要的就是请求头中的ContenType,顾名思义就是--内容类型 ,什么内容呢?请求体中的内容类型,请求体都有什么诶荣类型呢?有普通文本类型
text/plain
(这个是默认值),你要把请求体想成一个文件,服务器看到ContenType就能知道它要怎么解析里面的内容,这个contenType还包括编码方式,平时用的最多的就是 contenType:"text/xml; charset=utf-8"。
回归到正题,soap的方式是http+xml,意思是请求体要用 xml的方式,当然请求体是xml方式,那就别忘了设置contType为xml的方式,这样才是正解。才是好多像我这样的小白迷惑的地方。具体去哪儿看到底用哪种类型,直接去参考别人的网址就明白了,在这里无私奉上:https://www.cnblogs.com/garfieldcgf/p/5966317.html
同理,它返回来的也是xml的格式,自己再解析下就行,比如通过subString() 切词方法就能拿到你自己想要的最终结果。
如果觉得对您有用,麻烦给个赞,谢谢!
介绍之前 先了解下 http的知识,包含请求和响应的本质详细 ,得提前学下 请求头和响应头的知识 这个可以看我的 百度脑图 来学习
总结:也是http请求 ,只不过内容是xml格式的就可以。
先看一下HTTP的方式:
请求消息:
POST
/
item HTTP
/
1.1
Host
:
189.123
.
255.239
Content
-
Type
:
text
/
plain
Content
-
Length
:
200
随后服务器会处理此请求,然后向客户机发送一个 HTTP 响应。此响应包含了可指示请求状态的状态代码:
200
OK
Content
-
Type
:
text
/
plain
Content
-
Length
:
200
再看SOAP HTTP Binding(绑定)的方式:
SOAP 方法指的是遵守 SOAP 编码规则的 HTTP 请求/响应。
HTTP + XML = SOAP
SOAP 请求可能是 HTTP POST 或 HTTP GET 请求。
HTTP POST 请求规定至少两个 HTTP 头:Content-Type 和 Content-Length。
Content-Type
SOAP 的请求和响应的 Content-Type 头可定义消息的 MIME 类型,以及用于请求或响应的 XML 主体的字符编码(可选)。
语法
Content
-
Type