今天想玩一下Android和服务端交互所以就写了个登录的demo,在调用接口时遇到很多问题,弄了一下午终于弄出来了,分享下
服务端接口用xfire写的
下面是代码:
首先 引入ksoap2的Jar
String nameSpace = ""; //接口命名空间进入接口 找到 targetNameSpace 对应值
String method = ""; //调用接口方法名称
String soapAction = "";//命名空间+方法名
String endPoint = ""; //接口地址 去掉"?wsdl" 之后的地址
SoapObject request = new SoapObject(nameSpace,method);
request.addProperty("",""); //传参 参数名一定要看好是是哪个 进入页面看 如图
SoapSerializeEnvelope envelope = new SoapSerializeEnvelope (SoapEnvelope.VER11);//声明调用接口soap 版本 一定要看好了 否则无法连接 如图
envelope.bodyOut = request; //不太懂 网上找的 自己觉得是 为此次调用的接口进行声明 毕竟需要说明此次调用接口的地址和方法(根据下面代码猜的)
envelope.doNet =true ; // 确定是否连接
//以上调用接口的方法注册完了 下面就要进行调用啦
HttpTransportSE http = new HttpTransportSE (envelope);
try {
http.call(endPoint, envelope); //将envelope 传给HttpTransportSE 对象,将返回值传到envelope中
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SoapObject response = (SoapObject )envelope.bodyIn //获取返回值 SoapObject对象 通过SoapObject 对象将返回值(xml)转换成可用格式
String result = response.getProperty(0).toString();// 获取返回值
//就此结束啦!有理解不对的地方请指正啊.