- 浏览: 12012 次
- 性别:
- 来自: 成都
最新评论
与HTTP通信方式相比,HTTP不能实现远程方法的调用,Web Service可以实现。Web Service也有服务器端和客户端,一般采用XFire来搭建服务器。客户端Android系统中并没有提供直接与Web Service互相调用的操作类库,一般是采用第三方提供的类库才可以完成,比较常用的是Ksoap2类库。
一个完整的Web Service通信应该有服务器的建设和客户端的建设两个部分,服务器端的建设比较繁琐,可以借助内置Tomcat的MyEclipse8.5来实现。
其实网络上有很多已经建立好的服务器端,在服务器端提供开发好的方法供外界使用,例如:在http://www.webxml.com.cn服务器上对外公开了很多方法,比如天气情况、航班信息、手机归属地等,客户端只需要调用这些方法和相关参数,就可以编程调用这些方法,而不需要自己再去建立服务器。
下面编写了一个实例:
新建主布局文件:
一个完整的Web Service通信应该有服务器的建设和客户端的建设两个部分,服务器端的建设比较繁琐,可以借助内置Tomcat的MyEclipse8.5来实现。
其实网络上有很多已经建立好的服务器端,在服务器端提供开发好的方法供外界使用,例如:在http://www.webxml.com.cn服务器上对外公开了很多方法,比如天气情况、航班信息、手机归属地等,客户端只需要调用这些方法和相关参数,就可以编程调用这些方法,而不需要自己再去建立服务器。
下面编写了一个实例:
新建主布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/et" android:hint="请输入城市" android:selectAllOnFocus="true"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/search_but" android:text="获取天气信息"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" android:textSize="24sp"/> </LinearLayout>下面是主程序类:
package xiao.fuyan.testapp; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; /** * Created by xiao on 2017/2/3. */ public class WebServiceActivity extends Activity { private Button search_but; private TextView textView; private EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webservice_xml); et = (EditText) findViewById(R.id.et); search_but = (Button) findViewById(R.id.search_but); search_but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String city = et.getText().toString(); getWeather(city, " "); } }); } //定义命名空间 private static final String NAMESPACE = "http://WebXml.com.cn/"; //定义请求WSDL文档的URL private static final String URL = "http://www.webxml.com.cn/WebServices/WeatherWS.asmx"; //定义调用方法 private static final String METHOD_NAME = "getWeather"; //定义命名空间+调用方法名 private static final String SOAP_ACTION = "http://WebXml.com.cn/getWeather"; private SoapObject detail; public void getWeather(String city, String id){ try { textView = (TextView) findViewById(R.id.text); //实例化SoapObject对象 SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME); //添加参数 rpc.addProperty("thecityname", city); rpc.addProperty("id", id); //实例化SoapSerializationEnvelope对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); //封装输入的SoapObject对象rpc envelope.bodyOut = rpc; //要访问的服务器是.net服务器,否则设置为false envelope.dotNet = true; //设置要输出的SoapObject对象 envelope.setOutputSoapObject(rpc); //指定WSDL地址 HttpTransportSE ht = new HttpTransportSE(URL); //使用调试 ht.debug = true; //调用web service ht.call(SOAP_ACTION, envelope); //获取返回信息 detail = (SoapObject) envelope.getResponse(); textView.setText(detail.toString()); return; }catch (Exception e){ e.printStackTrace(); } } }
发表评论
-
Error:(1, 0) Your project path contains non-ASCII characters.
2017-04-27 18:23 507Today I will Android studio upd ... -
二维码扫描--横屏识别转为竖屏识别
2017-03-28 16:56 870最近在参加一次比赛,需要实现一个二维码扫描的功能,于是找到了g ... -
android studio R文件找不到
2017-03-15 17:16 208最近在参加一个比赛,比赛要求需要开发一个Android项 ... -
Android小程序--模拟焰火粒子和瀑布粒子
2017-02-16 10:03 203需要注意的是,粒子系统和前面开发的物理小球之间有类似的地 ... -
Android小程序-模拟小球平抛落地反弹到静止过程
2017-02-09 14:19 750一、开发运动体Movable类 ... -
Android开发高级组件--ProgressBar(进度条组件)
2017-01-15 14:55 3101、进度条组件ProgressBar是在某些操作的进度发展情况 ... -
图形与动画在Android中的实现
2017-01-11 16:32 3681、简单图形的绘制 canva ... -
深入了解Intent
2017-01-09 16:56 6131、Intent组件在Android中 ... -
Android开发高级组件--ExpandableListView(可伸展的列表组件)
2017-01-06 11:17 4311、在Android开发中,有时候希望对列表项可以分组管理并实 ... -
Android高级开发--SimpleAdapter类
2017-01-05 18:30 1731、ArrayAdapter显示效果显得有些单一,如果希望在一 ... -
Android开发高级组件--ListView(列表显示组件)
2017-01-02 23:11 1581、与ScrollView类似的还有一种列表组件ListVie ... -
Android开发高级组件--ScrollView(滚动视图组件)
2016-12-26 19:04 4141、手机屏幕的高度有限,当需要显示多组信息时,ScrollVi ... -
关于Andorid的RecyclerView在V7包下找不到的解决办法
2016-12-15 20:15 298最近在学习使用RecyclerView替换现有的Lis ... -
关于Android开发中的android.os.networkonmainthreadexception问题
2016-12-11 15:51 566首先明确一点出现此错误并不是代表代码错误。 在android ... -
Android开发之Failure [INSTALL_FAILED_OLDER_SDK]错误
2016-12-08 09:46 911[size=xx-small]起初我看到这个错误是拒绝 ...
相关推荐
10. **测试与调试**:使用Postman等工具进行API接口测试,以及利用Android Studio的Logcat进行日志输出,对于调试和优化Web Service通信过程非常有用。 总之,Android与Web Service的整合涉及到多个层面,包括选择...
在实现Web Service通信的过程中,主要涉及以下协议规范: 1. SOAP(Simple Object Access Protocol):这是一个简单的、基于XML的协议,用于在分布式环境中交换结构化和类型化的信息。SOAP消息通常通过HTTP或HTTPS...
在Android开发中,调用Web Service是常见的需求,主要用于实现移动设备与服务器之间的数据交互。Web Service通常基于SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)协议,为不同...
这是一个用于Android的轻量级SOAP库,它使我们能够与各种SOAP Web服务通信。这个jar文件包含了所有必要的依赖,因此我们可以直接将其添加到Android项目的libs目录,并在项目构建路径中包含它。 接下来,我们来看看`...
"基于Android和Web Service的掌上校园系统的设计与实现" 本文主要介绍了基于Android和Web Service的掌上校园系统的设计与实现。随着移动互联网的高速发展和智能手机的普及,广大师生迫切希望能够通过手机平台来随时...
这些通常涉及网络通信和协议栈,对于Android客户端访问Web Service来说,这些技术点虽然不是直接相关,但它们可能与网络通信层的实现细节相关联。 8. 结束语与参考文献: 文档的结束语部分提出了一种基于MTCA架构的...
在Android开发中,调用Web Service是常见的数据交互方式,特别是在需要与远程服务器进行数据交换时。本资源“安卓开发-从android中调用web service的源码.zip”提供了具体的实现示例,帮助开发者理解这一过程。以下...
在安卓(Android)平台上开发应用时,调用Web Service是一项常见的任务,这通常涉及到与远程服务器进行数据交互,实现功能如登录验证、数据同步等。本压缩包中的源码提供了从Android应用程序中调用Web Service的示例...
在Android学习平台的开发中,Web Service架构起着至关重要的作用,它使得移动设备能够与服务器进行高效的数据交换,从而实现远程教育平台的功能。Web Service是一种基于XML的通信技术,允许不同系统间的数据交互,不...
在Android系统中,Service是一种可以在后台长时间运行的组件,它不提供用户界面,但可以执行各种任务,如播放音乐、网络通信等。当设备启动时,我们有时希望某些Service能够自动启动,以便立即开始执行预定的任务,...
在Android开发中,调用Web服务是常见的需求,尤其是当需要与服务器进行数据交互时。Web服务,特别是基于SOAP协议的WebService,允许不同平台和语言之间进行通信。然而,Android SDK本身并未提供直接调用WebService的...
- 开发者可以利用各种移动开发框架和库,如Android的Ksoap2或iOS的SOAPClient,轻松集成Web Service,创建功能强大的3G手机应用。 总的来说,Web Service是互联网时代实现系统间协同工作的重要技术,它简化了不同...
总的来说,Android开发中的WebService调用是一个涉及网络通信、数据序列化和反序列化的过程。了解和掌握WebService的基本原理,包括SOAP和WSDL,对于开发能够与远程服务器无缝交互的应用至关重要。通过使用...
此外,由于Web Service通信涉及网络操作,建议在子线程中执行,以避免阻塞UI线程。可以使用`AsyncTask`或者`Handler`等机制实现异步调用。同时,对于错误处理和日志记录也需要做好相应的代码编写,以便调试和优化。
在Android开发中,有时我们需要与服务器进行数据交互,这时候Web Service接口就显得尤为重要。Ksoap2是一个轻量级的库,允许Android应用与基于SOAP(简单对象访问协议)的Web服务进行通信。在这个"Android通过Ksoap2...
在Android开发中,调用Web Service是常见的数据交互方式,特别是对于需要远程获取或发送数据的应用来说至关重要。Web Service通常采用SOAP(Simple Object Access Protocol)或REST(Representational State ...
接下来,我们来看一下如何使用kSOAP与C# Web Service通信的步骤: 1. **创建SOAP请求**: 首先,你需要构造一个SOAPEnvelope对象,设置其版本、命名空间和SOAPAction。同时,创建一个SOAPBody并添加所需的参数。 ``...
在安卓(Android)平台上开发应用时,调用Web Service是一项常见的任务,这通常涉及到与远程服务器进行数据交互,实现功能如登录验证、数据同步等。本压缩包中的源码提供了如何在Android应用中调用Web Service的具体...
在Android应用开发中,调用Web Service是一种常见的需求,它使得移动应用能够与远程服务器进行数据交互,实现功能如登录验证、数据同步等。本压缩包"Android应用源码之从中调用web service的源码.zip"提供了一个具体...