Android开发,需要连接webservice,之前就想用谷歌提供的jar包,下载地址:http://pan.baidu.com/s/1hqMTUHe

把它下载下来粘贴到libs文件夹下即可:

网上有很多类似的方法,我尝试了很多都没有成功,最后发现是我下载的jar包有问题导致我一直卡在哪儿。

首先添加网络权限:

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

这是全部代码,包括获取远程webservice当中数据并用ListView显示:

package com.example.webservice;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity {
//命名空间
String nameSpace="http://tempuri.org/";
//调用方法
String methodName="selectStuAll";//webservice存在的方法名称
String endPoint="http://10.0.2.2:8011/WebService.asmx?wsdl";//本地测试完整的链接
String soapAction="http://tempuri.org/selectStuAll";//命名空间和调用方法名 private ListView listview;
private ListAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView) findViewById(R.id.listView1); adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,getsource());
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO 自动生成的方法存根
Toast.makeText(MainActivity.this, ">>"+adapter.getItem(arg2),).show();
}
});
}
public List<String> getsource()
{
List<String> list=new ArrayList<String>(); //实例化SoapObject对象
SoapObject request=new SoapObject(nameSpace, methodName);
//第二步:假设方法有参数的话,设置调用方法参数
/* request.addProperty("username","1");
request.addProperty("password","2");
request.addProperty("tel","3");*/
//获得序列化的Envelope
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.bodyOut=request;
envelope.dotNet=true;
HttpTransportSE transport=new HttpTransportSE(endPoint);
try {
transport.call(soapAction, envelope);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
SoapObject result = null;
try {
result = (SoapObject)envelope.getResponse();
} catch (SoapFault e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} int count=result.getPropertyCount();
for(int index=;index<count;index=index+){
list.add(result.getProperty(index).toString());
}
return list;
}
}

这样就大功告成了,如果用到这个方法有问题,在下面评论,我会帮你解决。

Android 连接webservice(利用谷歌提供的jar包)的更多相关文章

  1. jdbc数据连接池dbcp要导入的jar包

    jdbc数据连接池dbcp要导入的jar包 只用导入commons-dbcp-x.y.z.jarcommons-pool-a.b.jar

  2. Android tips(八)-->Android Studio打包apk,aar,jar包

    文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...

  3. android studio 代码混淆如何忽略第三方jar包

    日前在打包混淆包含第三方jar包的Android studio项目时 报出了各种错误,但是debug版本却能正常运行,于是怀疑android studio 打包的时候把第三方jar包给混淆了,第三方j ...

  4. Android Studio打包apk,aar,jar包

    转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...

  5. Android开发 互相调用模式之导出Jar包、扩展MainActivity、Java主导

    首先讲导出Jar包,在以前都是用这种方法,但是现在官方不推荐使用此方法,官方推荐导出Aar包 (1)首先创建一个Android空工程 注意:这里选择API 16,因为Unity支持的最低是API 16 ...

  6. 解决Android studio首次启动gradle无法下载jar包

    换了个电脑,原来的配置都烂了,重新使用studio,发现界面就停留在gradle下载界面不动.原因估计你会懂得.. 网上流传的配置 Gradle Vm options 或是 配置build.gradl ...

  7. 【android】在Eclipse在联想引jar包源代码

    (前提是你有jar包源代码!!) .确保Referenced LIbraies下已经有该jar包,否则的话,右击该jar包选build path->add to build path. 二.右键 ...

  8. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...

  9. Android studio导入framework编译的classes.jar包

    1.在libs文件夹中加入jar包,并将其置顶 注:studio3.1的scope没有Provided选项,都默认选择implementation,studio2.3及以下版本需要将scope设置为P ...

随机推荐

  1. mybatis父子表批量插入

    <!--父子表批量插入 --> <insert id="insertBatch" parameterType="com.niwopay.dto.beni ...

  2. Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .

    1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...

  3. Matlab代码备忘

    1.Matlab写入文件  set(hp1,'xdata',bbb(1,:),'ydata',bbb(2,:),'zdata',bbb(3,:)); M=size(bbb,2); name=strca ...

  4. tcpip

    netstat -anp | grep 8099 kill -9 8099 服务端端口状态 1.LISTENING状态 FTP服务启动后首先处于侦听(LISTENING)状态. 2.ESTABLISH ...

  5. NRF905 无线模块实验

    ---恢复内容开始--- 采用2440开发板,CON4 不仅包含了很多富余的 GPIO 引脚,还包含了一些其他 CPU 引脚, 如 AD0-AIN3, CLKOUT 等.你所看到的图中的 SPI 接口 ...

  6. Ubantu16.4的安装过程以及基本配置

    Ubantu16.4的安装过程以及基本配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 其实很早以前就听朋友说ubantu这怎么好 ...

  7. JavaScript 设计模式之工厂模式

  8. 反射调用方法时的两种情况,走get set和不走get set

    @Test public void test1() throws Exception{  //获取User类  Class class1=Class.forName("cn.jbit.bea ...

  9. PhoneGap中navigator.notification.confirm的用法详解

    navigator.notification.confirm('您确定要退出程序吗?', showConfirm, '退出程序', '确定,取消'); function showConfirm(but ...

  10. SQL2005中的事务与锁定(九)- 转载

    ------------------------------------------------------------------------ -- Author : HappyFlyStone - ...