Android基于ksoap2的WebService通信客户端demo
来源:互联网 发布:网络用语沙发的意思 编辑:程序博客网 时间:2024/06/06 16:36
瞎扯:出差内蒙闲来无事写写,干燥、、、每天要喝3瓶水,口味重的很、、、连奶茶都是咸的,第一次感觉到我的口语是这么不biu准。
瞎扯完毕、、、进入正文,
一、先贴wsdl
This XML file does not appear to have any style information associated with it. The document tree is shown below.<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-. --><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.test.mars/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TServiceService" targetNamespace="http://ws.test.mars/"><span style="white-space:pre"></span><types><span style="white-space:pre"></span><xsd:schema><span style="white-space:pre"></span><xsd:import namespace="http://ws.test.mars/" schemaLocation="http://localhost:8080/webservice_t01_wp/TServicePort?xsd=1"/><span style="white-space:pre"></span></xsd:schema><span style="white-space:pre"></span></types><span style="white-space:pre"></span><message name="test"><span style="white-space:pre"></span><part element="tns:test" name="parameters"/><span style="white-space:pre"></span></message><span style="white-space:pre"></span><message name="testResponse"><span style="white-space:pre"></span><part element="tns:testResponse" name="parameters"/><span style="white-space:pre"></span></message><span style="white-space:pre"></span><portType name="TServiceDelegate"><span style="white-space:pre"></span><operation name="test"><span style="white-space:pre"></span><input message="tns:test"/><span style="white-space:pre"></span><output message="tns:testResponse"/><span style="white-space:pre"></span></operation><span style="white-space:pre"></span></portType><span style="white-space:pre"></span><binding name="TServicePortBinding" type="tns:TServiceDelegate"><span style="white-space:pre"></span><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><span style="white-space:pre"></span><operation name="test"><span style="white-space:pre"></span><soap:operation soapAction=""/><span style="white-space:pre"></span><input><span style="white-space:pre"></span><soap:body use="literal"/><span style="white-space:pre"></span></input><span style="white-space:pre"></span><output><span style="white-space:pre"></span><soap:body use="literal"/><span style="white-space:pre"></span></output><span style="white-space:pre"></span></operation><span style="white-space:pre"></span></binding><span style="white-space:pre"></span><service name="TServiceService"><span style="white-space:pre"></span><port binding="tns:TServicePortBinding" name="TServicePort"><span style="white-space:pre"></span><soap:address location="http://localhost:8080/webservice_t01_wp/TServicePort"/><span style="white-space:pre"></span></port><span style="white-space:pre"></span></service></definitions>
This XML file does not appear to have any style information associated with it. The document tree is shown below.<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3-hudson-390-. --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://ws.test.mars/" targetNamespace="http://ws.test.mars/" version="1.0"><xs:element name="test" type="tns:test"/><xs:element name="testResponse" type="tns:testResponse"/><xs:complexType name="test"><xs:sequence><xs:element minOccurs="0" name="arg0" type="xs:string"/></xs:sequence></xs:complexType><xs:complexType name="testResponse"><xs:sequence><xs:element minOccurs="0" name="return" type="xs:string"/></xs:sequence></xs:complexType></xs:schema>
二、上MainActivity Const WsControler代码
MainActivity
package com.example.wsandroidclient.activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Toast;import com.example.wsandroidclient.R;import com.example.wsandroidclient.controler.WsControler;/** * * @author Administrator * */public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void connect(View view){ String returnvalue=WsControler.test("123112");Toast.makeText(getApplication(), returnvalue, 1).show();}}
Const
package com.example.wsandroidclient.comment;public class Const {public class WSConst {public class t01 {public static final String URL="http://192.168.11.124:8080/webservice_t01_wp/TServicePort?wsdl";public static final String nameSpace="http://ws.test.mars/";public static final String test_mathName="test";}}}
WsControler
package com.example.wsandroidclient.controler;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.PropertyInfo;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapPrimitive;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.util.Log;import com.example.wsandroidclient.comment.Const;/** * webserviceControler * @author Administrator * */public class WsControler {public static final String Tag="WSCONTROLER";public static String test(String str){//1 HttpTransportSEfinal HttpTransportSE httpTransportSE = new HttpTransportSE(Const.WSConst.t01.URL);httpTransportSE.debug=true;//2 SoapObjectSoapObject soapObject = new SoapObject(Const.WSConst.t01.nameSpace, Const.WSConst.t01.test_mathName);//3 添加请求参数 //soapObject.addProperty("arg0", str);PropertyInfo propertyInfo=new PropertyInfo();propertyInfo.setName("arg0");propertyInfo.setValue(str); soapObject.addProperty(propertyInfo);Log.d(Tag, str); //4 SoapSerializationEnvelope final SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);soapSerializationEnvelope.bodyOut=soapObject;soapSerializationEnvelope.setOutputSoapObject(soapObject);soapSerializationEnvelope.dotNet= false;//这里如果设置为TRUE,那么在服务器端将获取不到参数值(如:将这些数据插入到数据库中的话) //线程接口FutureTask<String> futureTask = new FutureTask<String>(new Callable<String>() {@Overridepublic String call() throws Exception {String returnvalue="";// 调用 //Const.WSConst.t01.nameSpace+Const.WSConst.t01.test_mathNamehttpTransportSE.call(null, soapSerializationEnvelope);// 获取返回信息 if(soapSerializationEnvelope.getResponse()!=null){ SoapPrimitive primitive = (SoapPrimitive) soapSerializationEnvelope.getResponse(); Log.d(Tag, primitive.toString()+""); returnvalue=primitive.toString(); }return returnvalue;}});//开启线程new Thread(futureTask).start();try {//线程完成回调return futureTask.get();} catch (InterruptedException | ExecutionException e) {e.printStackTrace();}return str;}}
三、注意加权限:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.wsandroidclient" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.wsandroidclient.activity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
四、请求及响应数据 有点乱码将就看了
POST /webservice_t01_wp/TServicePort?wsdl HTTP/1.1User-Agent: ksoap2-android/2.6.0+SOAPAction: ""Content-Type: text/xml;charset=utf-8Accept-Encoding: gzipHost: 127.0.0.1:8081Connection: Keep-AliveContent-Length: 362<v:Envelope xmlns:i="http://www.w3.org/1999/XMLSchema-instance" xmlns:d="http://www.w3.org/1999/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"><v:Header /><v:Body><n0:test id="o0" c:root="1" xmlns:n0="http://ws.test.mars/"><arg0 i:type="d:string">123112</arg0></n0:test></v:Body></v:Envelope>
HTTP/1.1 200 OKServer: Apache-Coyote/1.1Content-Type: text/xml;charset=utf-8Transfer-Encoding: chunkedDate: Thu, 16 Jun 2016 08:42:17 GMTf0<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:testResponse xmlns:ns2="http://ws.test.mars/"><return>鏉ヨ嚜鏈嶅姟绔殑杩斿洖1111锛�23112</return></ns2:testResponse></S:Body></S:Envelope>0
下载:
客户端:http://download.csdn.net/detail/zlin3007/9551763
服务端:http://download.csdn.net/detail/zlin3007/9551738
0 0
- Android基于ksoap2的WebService通信客户端demo
- 基于ksoap2的android WebService上传图片
- Android WebService 客户端 之 andriod ksoap2 WebService 复杂对象参数
- WebService 头部认证信息----基于ksoap2-android使用.Net Webservice
- android通过ksoap2对webservice的解析
- android 用ksoap2调用webservice的方法
- android ksoap2下webservice的 https请求
- Android通信方式(三)-----WebService (Ksoap2实现)
- Android通信方式(三)-----WebService (Ksoap2实现)
- android ksoap2调用webservice
- android webservice 上传图片到 sqlserver数据库 (基于ksoap2 , C#)
- 基于TCPClient的客户端服务器的简单通信demo
- Android 基于xmpp的即时通信Demo
- Ksoap2+WebService+BaseAdapter 实现android对WebService的调用
- 基于soap协议和webservice的客户端与服务器通信
- xfire生成webservice,Android利用ksoap2访问webservice 之 客户端搭建
- 基于Delphi实现客户端服务端通信Demo
- android引用Ksoap2调用webservice
- SSH 操作mysql命令
- TCP/IP详解卷1-协议:IP
- 多位数乘一位数并输入到文本文档中
- Android自定义键盘
- 动态规划开始的开始(为什么要用一个数组而不是两个)
- Android基于ksoap2的WebService通信客户端demo
- iOS开发之Xcode的静态分析(Static Code Analysis)与常见问题解决
- 【Android】不弹root请求框检测手机是否root
- 10个随机数
- 自定义tabBar(仿百思不得姐的tabBar设计)
- android scrollview中edittext 软键盘跳出遮住edittext
- 网页分享到微信常见问题
- iOS开发 如何在Label中显示图片-图文混排
- Android7.0新特性