安卓获取航班信息
-
效果截图:
-
工程截图:
-
关键代码:
package com.example.service;
import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE;
/**
* WebService工具类
*
* @author 锐
*
*/
public class WebServiceUitl {
/**
* 静态方法获取结果
*
* @param endPoint
* webService地址
* @param methodName
* 方法
* @param soapAction
* SoapAction
* @param nameSpace
* 命名空间
* @param pars
* 参数名数组
* @param vals
* 参数值数组
* @return SoapObject对象
*/
public static SoapObject getResult(String endPoint, String methodName,
String soapAction, String nameSpace, String[] pars, String[] vals) {
// 创建 SoapObject 对象,指定命名空间和调用的方法
SoapObject soapObject = new SoapObject(nameSpace, methodName);
// 判断参数
if (pars != null) {
// 设置参数名和参数值
for (int i = 0; i < pars.length; i++) {
soapObject.addProperty(pars[i], vals[i]);
}
}
// 生成SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 申明调用的是 dotNet 开发的 WebService
envelope.dotNet = true;// 相当于envelope.bodyOut=soapObject;
// 将SoapObject 对象设置到请求信息中
envelope.setOutputSoapObject(soapObject);
// 传输协议对象,指定访问的webService地址
HttpTransportSE transportSE = new HttpTransportSE(endPoint);
try {
// 访问WebService,指定SoapAction和请求信息
transportSE.call(soapAction, envelope);
} catch (Exception e) {
e.printStackTrace();
}
// 获得返回数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 返回数据
return object;
}
}
package com.example.uitl;
import java.util.ArrayList; import java.util.List;
import org.ksoap2.serialization.SoapObject;
import com.example.entity.AirlineEntity;
/**
* 工具类
* @author 锐
*
*/
public class MyUitl {
/**
* 静态方法解析航班信息数据
*
* @param result
* SoapObject结果对象
* @return List<AirlineEntity>
*/
public static List<AirlineEntity> getResult(SoapObject result) {
List<AirlineEntity> airlineEntities = new ArrayList<AirlineEntity>();
SoapObject getDomesticAirlinesTimeResult = (SoapObject) result
.getProperty("getDomesticAirlinesTimeResult");
SoapObject diffgram = (SoapObject) getDomesticAirlinesTimeResult
.getProperty("diffgram");
SoapObject Airlines = (SoapObject) diffgram.getProperty("Airlines");
for (int i = 0; i < Airlines.getPropertyCount(); i++) {
SoapObject AirlinesTime = (SoapObject) Airlines.getProperty(i);
String company = String
.valueOf(AirlinesTime.getProperty("Company"));
String airlineCode = String.valueOf(AirlinesTime
.getProperty("AirlineCode"));
String startDrome = String.valueOf(AirlinesTime
.getProperty("StartDrome"));
String arriveDrome = String.valueOf(AirlinesTime
.getProperty("ArriveDrome"));
String startTime = String.valueOf(AirlinesTime
.getProperty("StartTime"));
String arriveTime = String.valueOf(AirlinesTime
.getProperty("ArriveTime"));
String mode = String.valueOf(AirlinesTime.getProperty("Mode"));
String airlineStop = String.valueOf(AirlinesTime
.getProperty("AirlineStop"));
String week = String.valueOf(AirlinesTime.getProperty("Week"));
AirlineEntity airlineEntity = new AirlineEntity(company,
airlineCode, startDrome, arriveDrome, startTime,
arriveTime, mode, airlineStop, week);
airlineEntities.add(airlineEntity);
}
return airlineEntities;
}
}
工程是用4点3的版本开发的,不同版本的改一下版本号,dome资源地址:http://download.youkuaiyun.com/detail/u013897264/7039547

本文介绍了一种在安卓应用中通过WebService获取国内航班信息的方法。利用SOAP协议,该应用可以实现航班信息的实时查询,并详细展示了关键代码及数据解析过程。
412

被折叠的 条评论
为什么被折叠?



