一、开发前准备
1、下载jar包,下载地址
http://code.google.com/p/ksoap2-android/wiki/HowToUse?tm=2
下载ksoap***.jar
2、在eclipse中新建一个android app工程
3、用鼠标将下载下来的jar包拖动到新建工程的lib文件加下,出现提示,选择copy
4、在新建的工程文件夹点右键属性,选择Java Build Path,右面选择libraries,点击右面的 AddJARs,选择那个jar包,点击OK
5、打开工程的AndroidManifest.xml文件,加上
表示可以访问网络,并将android:minSdkVersion 设置为"11"
6、在主程序进行操作前加上以下代码
- StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
- .detectDiskReads()
- .detectDiskWrites()
- .detectNetwork()
- .penaltyLog()
- .build());
- StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
- .detectLeakedSqlLiteObjects()
- .detectLeakedClosableObjects()
- .penaltyLog()
- .penaltyDeath()
- .build());
主要原因是,android4.0以后的版本不允许在主程序中进行联网操作,否则会报如下错误
android.os.NetWorkOnMainException和android.os.NetWorkOnMainThreadExcep
二、程序中实现访问Webservice
- private static final String NAMESPACE ="所调用的WebService的命名空间";
- private static String URL = "所调用的WebService的地址";
- private static final String METHOD_NAME = "所调用的WebService中的方法";
- try {
- SoapObject rpc = newSoapObject(NAMESPACE, METHOD_NAME);
- rpc.addProperty("WebService中该方法中的参数1名称", 参数1的值);
- rpc.addProperty("WebService中该方法中的参数2名称", 参数2的值);
- //.....有几个参数设置几个值
- SoapSerializationEnvelopeenvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
- envelope.bodyOut = rpc;
- envelope.dotNet= true;
- envelope.setOutputSoapObject(rpc);
- HttpTransportSE ht = newHttpTransportSE(URL);
- ht.debug =true;
- ht.call(null,envelope);
- SoapObjectresult = (SoapObject)envelope.bodyIn;
- String vf=result.getProperty("所调用的WebService该方法返回值参数名").toString();
- //vf就是你获取的返回值
- } catch (Exception e) {
- e.printStackTrace();
- }