Soap请求获取指定城市的天气情况并在天地图API Map中显示

1.进入新的公司,作为内部的评测,留给了我这个需求;有这么一个需求ws地址:http://218.60.147.62/aqizx_ws/webservice/AndroidWebService.asmx方法名: selectAirStationByCityName命名空间:http://tempuri.org/ CityName 传“沈阳”通过这个方法可以获取到沈阳市的
摘要由CSDN通过智能技术生成

1.进入新的公司,作为内部的评测,留给了我这个需求;

有这么一个需求

ws地址: http://218.60.147.62/aqizx_ws/webservice/AndroidWebService.asmx
方法名: selectAirStationByCityName
命名空间: http://tempuri.org/ 
CityName 传“沈阳”
通过这个方法可以获取到沈阳市的空气自动站数据 ;
现在使用天地图(tianditu.com) 把这些信息在地图上展示出来

2.之前做过类似的调用腾讯新闻接口做类似头条的Demo,只是当时是http请求;
度娘了一下Ksoap-Android请求框架和天地图的API;

3.大约的思路是:
Start页面留出一个文本框和按钮(期初想做基础数据+二级Spinner联调的城市选择,后来电脑问题很多浪费了蛮多的时间),用Asynctaskjinx


获取到的SoapObject结构是:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <selectAirStationByCityNameResponse xmlns="http://tempuri.org/">
      <selectAirStationByCityNameResult>
        <AirAutomaticStation>
          <BackGroundURL>string</BackGroundURL>
          <WeatherURL>string</WeatherURL>
          <ZhanID>string</ZhanID>
          <ZhanName>string</ZhanName>
          <SO2>string</SO2&g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务之间进行通信。SOAP请求包包含两部分:头部和消息体。 在服务端对SOAP请求包进行解析,可以使用一些开源的SOAP库,比如Apache CXF、Axis2等。一般来说,以下是解析SOAP请求包头部的步骤: 1. 用SOAP库解析请求包,将其转换为SOAP消息对象。 2. 从SOAP消息对象获取头部对象,一般是通过getHeader()方法实现。 3. 解析头部对象,获取头部信息。 以下是一个示例代码,使用Apache CXF库解析SOAP请求包头部: ```java import javax.xml.namespace.QName; import org.apache.cxf.binding.soap.SoapHeader; import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.headers.Header; import org.apache.cxf.interceptor.Fault; import org.apache.cxf.phase.AbstractPhaseInterceptor; import org.apache.cxf.phase.Phase; public class SOAPHeaderInterceptor extends AbstractPhaseInterceptor<SoapMessage> { public SOAPHeaderInterceptor() { super(Phase.PRE_PROTOCOL); } @Override public void handleMessage(SoapMessage message) throws Fault { Header header = message.getHeader(new QName("http://example.com/namespace", "HeaderName")); SoapHeader soapHeader = (SoapHeader) header.getObject(); // 解析头部信息 String headerValue = soapHeader.getText(); System.out.println("Header Value: " + headerValue); } } ``` 在上面的代码,我们创建了一个SOAPHeaderInterceptor类,它是一个拦截器,用于在请求处理之前拦截SOAP请求包,并解析其头部信息。在handleMessage()方法,我们首先获取请求名为“HeaderName”的头部,然后将其转换为SoapHeader对象。最后,我们可以从SoapHeader对象获取头部信息并进行处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值