- 浏览: 220846 次
文章分类
最新评论
-
lmjmn456:
为什么我的TestHall里面看不到RomeA RomeB R ...
Android 通过反射启动未安装的APK中的Activity -
wangleyiang:
uyerp 写道这样的话,只能将插件的元素显示到Hall中。有 ...
Android 通过反射启动未安装的APK中的Activity -
uyerp:
这样的话,只能将插件的元素显示到Hall中。有什么办法能在不安 ...
Android 通过反射启动未安装的APK中的Activity -
wangleyiang:
提高文学修养 写道不好意思,有时间尝试一下,谢谢!有问题提出来 ...
Android 主题之主题文件夹 -
提高文学修养:
不好意思,有时间尝试一下,谢谢!
Android 主题之主题文件夹
SOAP协议:简单对象访问协议(Simple Object Access Protocol)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。
在Android上使用SOAP协议比较常用的方式是第三方的库,比如:kSOAP 2:http://ksoap2.sourceforge.net。
下面给出一个使用OutputStreamWriter实现的SOAP协议,比较简单,直接上主要代码:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import java.util.HashMap; public class SopaObject { private String nameSapce = null; private String method = null; private StringBuffer soapXmlOut = null; private StringBuilder soapXmlIn = null; private HashMap<String, String> headMap = null; private HashMap<String, String> bodyMap = null; private String responseCode = null; private String responseMessage = null; public SopaObject(String nameSapce, String method) { this.nameSapce = nameSapce; this.method = method; headMap = new HashMap<String, String>(); bodyMap = new HashMap<String, String>(); soapXmlOut = new StringBuffer(); soapXmlOut.append("<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"); } public void setSoapHead(HashMap<String, String> headMap) { this.headMap = headMap; } public void setSoapBody(HashMap<String, String> bodyMap) { this.bodyMap = bodyMap; } public void request(String urlPath) { try { URL url = new URL(urlPath); URLConnection connection = url.openConnection(); connection.setDoOutput(true); connection.setRequestProperty("Pragma:", "no-cache"); connection.setRequestProperty("Cache-Control", "no-cache"); connection.setRequestProperty("Content-Type", "text/xml"); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); // Head Object[] headKeys = headMap.keySet().toArray(); soapXmlOut.append("<soap:Header><Credentials xmlns=\"" + nameSapce + "\">"); for (Object key : headKeys) { soapXmlOut.append("<" + key + ">" + headMap.get(key) + "</" + key + ">"); } soapXmlOut.append("</Credentials></soap:Header>"); // Body Object[] bodyKeys = bodyMap.keySet().toArray(); soapXmlOut.append("<soap:Body><" + method + " xmlns=\"" + nameSapce + "\">"); for (Object key : bodyKeys) { soapXmlOut.append("<" + key + ">" + bodyMap.get(key) + "</" + key + ">"); } soapXmlOut.append("</" + method + "></soap:Body>"); soapXmlOut.append("</soap:Envelope>"); // Send out.write(new String(soapXmlOut.toString().getBytes("UTF-8"))); // Flush and close out.flush(); out.close(); // Get response BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); soapXmlIn = new StringBuilder(); String line = null; for (line = bufferedReader.readLine(); line != null; line = bufferedReader.readLine()) { soapXmlIn.append(line); } System.out.println("wangleyiang:" + soapXmlIn.toString()); } catch (IOException e) { e.printStackTrace(); } } }
测试一下,使用一个基于WebService的气象服务:http://www.webservicex.net/globalweather.asmx,测试代码如下:
SopaObject object = new SopaObject("http://www.webservicex.net", "GetCitiesByCountry"); HashMap<String, String> map = new HashMap<String, String>(); map.put("CountryName", "China"); object.setSoapBody(map); object.request("http://www.webservicex.net/globalweather.asmx");
SoapObject的方法比较少,意思比较明确,就不做说明了!:)
发表评论
-
避免OOM的一种方式
2014-03-11 09:30 869从网上看到一个避免OOM的方式,创建图片时,使用decod ... -
锁屏操作
2013-11-01 11:29 949从API Level 8开始,添加了一个新的类Device ... -
让Surface中绘制的内容响应用户的交互(状态变化)
2013-10-28 16:54 893被绘制的内容响应用户的交互,简单的看就是绘制内容的状态在用 ... -
在自定义的SurfaceView中绘制内容
2013-10-28 16:53 2861View和SurfaceView都可以用于绘制图形,但各有 ... -
在自定义的View中绘制内容
2013-10-28 10:52 943程序开发中,常常需要完成某一个特殊效果而绘制一些内容。 ... -
获取Bitmap大小
2013-10-08 17:59 1009Bitmap的操作常常会导致OOM(内存溢出)。 在处理B ... -
隐藏键盘的一种处理方法
2013-10-08 15:18 667通过调用系统服务来隐藏键盘的一种处理方法: // 获 ... -
通过系统调用裁剪图片
2013-10-08 15:05 1053分享一个Android源码查看网页:http://andr ... -
拍照,相册获取图片,系统裁剪图片
2013-09-30 12:41 1604获取相册图片的一种写法: Intent intent = ... -
转-Android开发环境搭建篇详尽的教程实例汇
2013-09-27 13:50 754原文:http://wiki.eoe.cn/page/An ... -
一种更改包名的方式-Linux命令
2013-09-27 09:54 1141在Android应用程序中更改包名,可以从文件的角度来解决 ... -
Android 通过反射启动未安装的APK中的Activity
2013-02-05 16:32 8873JAVA反射机制是在运行状态中,对于任意一个类,都能够知道 ... -
Android 判断程序是否是系统程序
2013-02-04 14:12 1657获得Android手机中安装程序是否是系统程序,比较好的方式 ... -
Android R
2013-02-01 16:18 1248import java.lang.reflect.Fiel ... -
Android 主题之主题文件夹
2013-02-01 14:22 1709从文件夹中获得主题资源,然后在程序中做相关调整,下面看一个 ... -
Android 主题之安装的APK主题文件
2013-01-31 17:25 1843Android中应用主题设置 ... -
『转』Android Intent常见应用
2013-01-30 16:46 1362转自:http://blog.csdn.net/spy19 ... -
Android px sp dip转化
2013-01-30 12:53 977一个关于px, sp, dip转化的代码: public ... -
Android 布局
2013-01-30 11:19 1317对Android提供的基本布局控件进行组合,可以实现一些相 ... -
Android 添加动画的标签栏
2013-01-29 23:10 1113运行效果图: 实现原理:标签布局好了以后,标签所在V ...
相关推荐
在这个示例中,我们展示了如何在Android应用中使用KSOAP2库调用SOAP协议的Web Service接口。请注意,实际应用中可能需要根据具体的服务接口调整请求参数和处理响应的方式。同时,确保正确处理网络权限和异常情况,以...
3. Android中使用SOAP: 在Android应用中,首先需要添加KSOAP2库到项目的依赖。接着,创建SOAP请求对象,设置服务的URL、命名空间、操作方法以及参数。例如,你可能需要设置一个名为`GetWeatherInfo`的操作,并传入...
至此,你已经成功地使用Retrofit2+OkHttp3实现了Android应用通过SOAP协议请求Web Service。在实际项目中,你需要根据具体的SOAP服务来调整请求XML的结构和SOAPAction头信息。同时,记得处理网络请求的异步操作,避免...
KSOAP2是一个专门为Android设计的轻量级库,它允许Android应用与使用SOAP协议的Web服务进行交互。你需要下载`ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar`包,并将其添加到Android项目的lib目录下,...
总结,Android应用基于Retrofit2+Okhttp3通过SOAP协议请求WebService是一种有效的解决方案,它简化了网络调用的复杂性,同时利用了OkHttp3的高性能特性。通过定义接口、配置Retrofit实例、创建SOAP请求和处理响应,...
在Android开发中,有时我们需要与使用SOAP(Simple Object Access Protocol)协议的Web服务进行交互。SOAP是一种基于XML的协议,用于在应用程序之间交换结构化和类型化的信息。本篇文章将详细探讨如何使用Retrofit2...
Android系统平台是目前智能手机市场中使用最为广泛的开源平台之一,它允许开发者利用多种工具和语言来创建手机应用程序。本文探讨了如何在Android平台上利用SOAP协议调用天气预报服务,开发出能够实时获取天气信息的...
本篇将深入探讨如何使用ksoap2-android库在Android应用中连接并调用ASP.NET WebService。 首先,ksoap2-android是一个轻量级的库,专门用于在Android平台上处理SOAP(Simple Object Access Protocol)消息。SOAP是...
在Android应用开发中,利用Soap协议调用Web Service或WCF,需要借助Google专门为Android开发的ksoap2工具包。ksoap2是一个轻量级的库,使得Android客户端可以轻松地处理Soap请求和响应,从而实现跨平台的通信。它...
在这个实例中,我们将深入探讨如何使用Soap2Android来实现这一目标。 1. SOAP简介: SOAP是一种基于XML的数据交换协议,用于在分布式环境中交换结构化信息。它允许服务提供者和消费者通过HTTP或其他传输协议进行...
本文将深入探讨如何在Android上使用SOAP进行数据交互,并结合压缩包中的"org"文件夹内容,分析可能包含的库或工具。 首先,SOAP通信通常涉及以下步骤: 1. **创建SOAP消息**:Android应用需要构建一个符合SOAP规范...
总之,通过理解SOAP协议的工作原理,结合Android的网络请求库,开发者可以轻松地在Android应用中集成外部Web服务,获取实时的天气预报数据。同时,对于任何网络请求,都应考虑性能优化和用户体验,如缓存策略、错误...
在Android开发中,与远程服务器进行数据交互是常见的需求,而SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化信息。虽然RESTful API在现代应用中更为流行,但某些...
在Android应用开发中,SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的协议,它基于XML标准,常用于Web服务交互。本示例着重于如何在Android平台上进行SOAP开发,以便应用程序能够与远程Web服务...
在Android开发中,有时我们需要与Web服务进行交互,SOAP(Simple Object Access Protocol)是一种常见的用于交换结构化信息的标准协议。本篇文章将详细讲解如何在Android环境下实现SOAP线程池并发请求,以提高应用...
在Android应用中,通过SOAP协议与Web服务进行交互,能够实现跨平台的数据交换和远程服务调用等功能。 #### 二、Web Service简介 Web Service是一种支持HTTP协议的服务,它可以将不同的应用程序、操作系统和服务...
在Android开发中,SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的协议,常用于与Web服务交互。本文将详细讲解如何在Android中进行SOAP的封装,以便于更高效地进行API调用。 首先,我们需要理解...
本篇文章将深入探讨如何使用SOAP2在Android应用中查询天气信息。 首先,我们需要理解SOAP的基本概念。SOAP是一种基于XML的协议,用于在不同系统之间交换结构化和类型化的信息。它允许客户端通过HTTP或HTTPS等传输...
总的来说,实现ONVIF协议在Android上是一个涉及网络通信、XML解析、媒体处理和SOAP交互的复杂过程。虽然挑战重重,但通过合理的设计和编程,我们可以构建出一款能够接入各种ONVIF设备的高效监控应用。