android客户端通过xfire访问webservice
2014-04-21 12:08
417 查看
package com.example.k09; import java.util.ArrayList; import java.util.List; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.StrictMode; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; public class K09 extends Activity { private List<String> list = new ArrayList<String>(); @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_k09); /**************************************************/ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build()); /***************************************************/ init(); } private void init() { // TODO Auto-generated method stub final ListView mList = (ListView) findViewById(R.id.province_list); // 命名空间 String SERVICE_NS = "http://news_wbs/com/wy/NewsImpl"; String SERVICE_URL = "http://192.168.22.12:8080/news_wbs/services/News"; // 调用的方法名称 String methodName = "getNewsList"; String ACTION="http://news_wbs/com/wy/NewsImpl/getNewsList"; SoapObject rpc = new SoapObject(SERVICE_NS, methodName); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER10); envelope.bodyOut = rpc; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; // 等价于envelope.bodyOut = rpc; envelope.setOutputSoapObject(rpc); HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); try { // 调用WebService ht.call(ACTION, envelope); if(envelope.getResponse()!=null) { // 获取返回的数据 SoapObject result = (SoapObject)envelope.bodyIn; String result1 = result.getProperty(0).toString(); Log.i("King_wang",result1); SoapObject Newslist = (SoapObject) result.getProperty("out"); for (int i = 0; i <Newslist.getPropertyCount(); i++) { list.add(Newslist.getProperty(i).toString()); } } } catch (Exception e) { e.printStackTrace(); } mList.setAdapter(new ArrayAdapter<String>(K09.this, android.R.layout.simple_list_item_1, list)); } }
最近一直在做webservice方面的项目,但是android客户端的问题一直没解决
网上资料找的都一样,按照书上的例子走也不行
最后改变客户端和服务器的连接方式
并且加上几行处理多线程的代码,问题就解决了
一、连接方式
我是用自己的pc作为服务器(myeclipse),用自己的手机连接服务器(开发用的是adt,将手机通过豌豆荚与pc连接)
让宿舍的一个室友共享下自己的网络
我把pc的宽带断了,连接他的无线网
手机也打开wlan,连接他的无线网
查看pc的无线网ip
在代码里面将服务器的ip改成我的电脑的无线网ip
无限网毕竟不稳定,如果发现出错了,可以看下是不是电脑或者手机的无限网断了
二、代码(导入包,添加net权限,编写xml布局文件我这儿就不细说了)
相关文章推荐
- xfire生成webservice,Android利用ksoap2访问webservice 之 客户端搭建
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- XE5 ANDROID通过webservice访问操作MSSQL数据库
- Android 客户端调用基于XFire的webService方法传递自定义对象
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- android使用xfire webservice框架远程对sqlserver操作(包括增删改查)的实例!!已在真机上试验通过
- Android客户端通过PHP访问MySQL数据库
- JAX-RPC学习笔记(2)-通过动态代理客户端访问webservice
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- 客户端如何通过专用APN访问WebService
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- WebService XFire获得访问服务端的客户端IP
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- android客户端与服务器交互数据(基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合)
- Android客户端WebService访问接口(Ksoap2Android调用.net服务端)
- Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程
- JAX-RPC学习笔记(2)-通过动态代理客户端访问webservice
- tigase客户端通过ip访问 Not able to connect Android client with local XMPP server