android平台实现通过调用WebService获取服务器信息--------------cocos2d-x3.0正式版本(7.11)

一、开发前准备

1、下载jar包,下载地址

http://code.google.com/p/ksoap2-android/wiki/HowToUse?tm=2

或直接点击 http://ksoap2-android.googlecode.com/svn/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/3.0.0/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar

下载ksoap***.jar

2、在eclipse中新建一个android app工程

3、用鼠标将下载下来的jar包拖动到新建工程的lib文件加下,出现提示,选择copy

4、在新建的工程文件夹点右键属性,选择Java Build Path,右面选择libraries,点击右面的 AddJARs,选择那个jar包,点击OK

5、打开工程的AndroidManifest.xml文件,加上

<uses-permissionandroid:name="android.permission.INTERNET" />

表示可以访问网络,并将android:minSdkVersion 设置为"11"

6、在主程序进行操作前加上以下代码

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
  2. .detectDiskReads()  
  3. .detectDiskWrites()  
  4. .detectNetwork()  
  5. .penaltyLog()  
  6. .build());  
  7. StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
  8. .detectLeakedSqlLiteObjects()  
  9. .detectLeakedClosableObjects()  
  10. .penaltyLog()  
  11. .penaltyDeath()  
  12. .build());  

主要原因是,android4.0以后的版本不允许在主程序中进行联网操作,否则会报如下错误

android.os.NetWorkOnMainException和android.os.NetWorkOnMainThreadException

二、程序中实现访问Webservice

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. private static final String NAMESPACE ="所调用的WebService的命名空间";  
  2.   
  3. private static String URL = "所调用的WebService的地址";  
  4. private static final String METHOD_NAME = "所调用的WebService中的方法";  
  5.   
  6. try {  
  7.   
  8.    SoapObject rpc = newSoapObject(NAMESPACE, METHOD_NAME);  
  9.   
  10.   rpc.addProperty("WebService中该方法中的参数1名称", 参数1的值);  
  11.   
  12.   rpc.addProperty("WebService中该方法中的参数2名称", 参数2的值);  
  13.   
  14.    //.....有几个参数设置几个值  
  15.   
  16.    SoapSerializationEnvelopeenvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);  
  17.    envelope.bodyOut = rpc;  
  18.    envelope.dotNet= true;  
  19.    envelope.setOutputSoapObject(rpc);  
  20.   
  21.    HttpTransportSE ht = newHttpTransportSE(URL);  
  22.    ht.debug =true;  
  23.   
  24.    ht.call(null,envelope);  
  25.   
  26.    SoapObjectresult = (SoapObject)envelope.bodyIn;  
  27.   
  28.    String vf=result.getProperty("所调用的WebService该方法返回值参数名").toString();  
  29.   
  30.    //vf就是你获取的返回值  
  31.   
  32. catch (Exception e) {  
  33.    e.printStackTrace();  
  34.   }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值