近日在项目中写了个OPhone 调用Webservice的工具类,主要是使用了KSoap2来实现的,代码如下:
1package com.ictehi.ophone.util;
2
3import java.io.IOException;
4import java.util.Iterator;
5import java.util.Map;
6
7import org.ksoap2.SoapEnvelope;
8import org.ksoap2.SoapFault;
9import org.ksoap2.serialization.SoapObject;
10import org.ksoap2.serialization.SoapSerializationEnvelope;
11import org.ksoap2.transport.AndroidHttpTransport;
12import org.ksoap2.transport.HttpTransportSE;
13import org.xmlpull.v1.XmlPullParserException;
14
15import android.util.Log;
16
17public class WSUtils {
18
19 public WSUtils() {
20 }
21
22 /** *//**
23 * @author Eric.Lu
24 * @param endPoint
25 * @param methodName
26 * @param params
27 * @param wsdl
28 * @return SoapObject
29 */
30 public static SoapObject callWS(String nameSpace, String methodName,
31 Map params, String wsdl) {
32
33 final String SOAP_ACTION=nameSpace+methodName;
34 SoapObject request = new SoapObject(nameSpace, methodName);
35 SoapObject soapResult=null;
36
37 if(params !=null && !params.isEmpty()){
38 for(Iterator it=params.entrySet().iterator();it.hasNext();){//遍历MAP
39 Map.Entry<String, Object> e=(Map.Entry<String, Object>) it.next();
40 request.addProperty(e.getKey().toString(),e.getValue());
41 }
42 }
43
44 /** *//**
45 * 设置Soap版本
46 * 类型:VER1.0,VER1.1,VER1.2
47 */
48 // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);//SOAP 1.0
49 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);// SOAP 1.1
50 // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);//SOAP 1.2
51
52 envelope.dotNet=true;//是否是dotNet WebService
53 envelope.bodyOut = request;
54
55// HttpTransportSE ht = new HttpTransportSE(wsdl);
56 AndroidHttpTransport androidHT=new AndroidHttpTransport(wsdl);
57 try {
58// ht.call(SOAP_ACTION, envelope);
59 androidHT.call(SOAP_ACTION,envelope);
60 } catch (IOException e) {
61 Log.e("IOException:", e.getMessage());
62 } catch (XmlPullParserException e1) {
63 Log.e("XmlPullParserException", e1.getMessage());
64 }
65 try {
66 soapResult=(SoapObject)envelope.getResponse();
67 } catch (SoapFault e) {
68 Log.e("SoapFault",e.getMessage());
69 }
70 return soapResult;
71 }
72}
73
74
75本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx
调用这个工具类的方法如下:
1HashMap<String, Object> params = new HashMap<String, Object>();
2 params.put("theCityName", peoples[position]);
3 String wsdl = "webservice的wsdl地址";
4 String nameSpace = "wsdl中的namespace";
5 String methodName = "方法名";//
6 // SoapObject result = WSUtils.callWS(nameSpace, methodName,
7 // wsdl,peoples[position]);
8 SoapObject result = WSUtils.callWS(nameSpace, methodName, params, wsdl);
9
10
11本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx
MSN:
posted on 2010-03-24 09:23
kylixlu 阅读(800)
评论(0) 编辑 收藏 所属分类:
Android