WebService(android)

WebService

         WebService,相当于是一个服务器,我们给按照它指定的API(已经定义好的方法)给它发送文件,它按照我们指定的内容,同时使用API给我们回传数据。

               手机   xml   服务器(通过中间的xml,他们两个进行通信)

一般情况都是我们按照服务器规定的格式(API),向服务器传送数据,作为请求,然后服务器根据我们的请求就可以给我们回传一个XML,我们所请求的数据就包括在这个xml里面,我们通过使用PULL等解析就可以拿到我们所想要的数据,当然,你也可以不解析,直接作为一个String打印出来。

一般我们采用的服务器网址是webxml,下面我们将模拟向webxml发送一条请求,获取相应的号码归属地。

1、 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo进入这个网址,我们可以看到一些列的类似于xml文件的东西,那就是教我们怎么所需要的xml文件。

2、 首先我们找到我们要发送给服务器的数据,当然,发送给服务器的方式有两种,因为GET得局限性比较大,我们这就列举使用post给服务器发送webservice请求,当然,上面有两个,我们肯定选择最新的。

3、           参数设置

POST /WebServices/MobileCodeWS.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
蓝色字体部分表示是需要后期处理的内容,而它给我们提供的包括主机名和文件名,我们在前面加个http://  webservice.webxml.com.cn / WebServices/MobileCodeWS.asmx就可以得到一个URL,注意URL不要写错了,不然就会告诉你找不到那个网页,而它的文本内容也要特别注意,它是soap(肥皂协议),是按照肥皂协议来传递xml

4、正式内容

<?xml version="1.0" encoding="utf-8"?>

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

  <soap12:Body>

    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">

      <mobileCode>string</mobileCode>

      <userID>string</userID>

    </getMobileCodeInfo>

  </soap12:Body>

</soap12:Envelope>

这一段内容你可以放在一个xml文件中,可以先通过inputstram从文件中读取,然后传递那个inputstream,一般都是传递inputstream的,如果你想直接用一个Strng来装,那么你应该特别注意一下斜杠

蓝色字体同样是值得注意的,mobilecode这个表示手机号码,是需要你输入的,如果你想在使用的时候再输入,你的使用一个特殊一点的字符,不要跟里面的其他字符一样,这样好方便后面的替换,当然你可以使用#mobile,这样包含特殊字符的时候特别注意使用String.replace方法时不要选择replaceall,因为对于replaceall来说,它是区分特殊字符的,也就是说你还在前面加两个斜杠,第一个斜杠是给第二个斜杠转移的,第二个斜杠是给特殊字符转移的,所以如果你使用了特殊字符,推荐使用replace。

    在你发送这段的内容的时候是需要指明数据长度,你的先将内容#mobile替换之后再统计长度,那个长度才是真正的长度,不然可能引起永久等待,超时等错误。

         使用httpurlconnetion.getinputstream,我们可以获得一个输入流,在这个输入流中就包含了我们送需要的内容,我们可以定义一个pull进行解析,当然你也可以直接打印,直接打印的话的注意编码方式,防止出现乱码,webxml默认传递的是UTF-8的格式,如果你是采用pull进行解析的话,那么你该注意,在匹配pullparse.getname的时候,一定的是判断这个是start-tag才可以,不然会给你报空指针异常。

         这样我们就实现了webservice之间的数据传递,同时通过那个网页,我们可以获取天气、股票、单词等信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值