安卓调用WebService(ksoap2)

来源:互联网 发布:淘宝店铺模板什么格式 编辑:程序博客网 时间:2024/05/21 09:45

安卓获取航班信息

  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

0 0
原创粉丝点击