您的位置:首页 > 移动开发 > Android开发

android平台实现通过调用WebService获取服务器信息

2014-07-11 17:50 746 查看
一、开发前准备

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、在主程序进行操作前加上以下代码

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.NetWorkOnMainThreadException

二、程序中实现访问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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐