安卓调用WebService(ksoap2)

安卓获取航班信息

  1. 效果截图:

  2. 工程截图:

  3. 关键代码:

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.csdn.net/detail/u013897264/7039547

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值