在android平台下WebService的操作步骤

本篇博客的目的是供我以后用到webService时候,进行参考,在这里记录一下

本篇博客写的是,利用webService查询手机号码,参考文章是Android平台调用WebService详解,但是这篇文章是2011年的,现在网络操作必须要在子线程中进行。。

效果图是:

注释很详细,对大家都有很大的帮助~~~~

package lgx.acc.updatedemo;

import java.io.IOException;

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.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity  {
	private EditText phoneSecEditText;
	private TextView resultView;
	private Button queryButton;
	Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			//在handler里面将其显示出来
			resultView.setText(msg.obj.toString());

			super.handleMessage(msg);
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		phoneSecEditText = (EditText) findViewById(R.id.phone_sec);
		resultView = (TextView) findViewById(R.id.result_text);
		queryButton = (Button) findViewById(R.id.query_btn);

		queryButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// 手机号码(段)
				String phoneSec = phoneSecEditText.getText().toString().trim();
				// 简单判断用户输入的手机号码(段)是否合法
				if ("".equals(phoneSec) || phoneSec.length() < 7) {
					// 给出错误提示
					phoneSecEditText.setError("您输入的手机号码(段)有误!");
					phoneSecEditText.requestFocus();
					// 将显示查询结果的TextView清空
					resultView.setText("");
					return;
				}
				// 查询手机号码(段)信息
				getRemoteInfo(phoneSec);
			}

		});

	}

	private void getRemoteInfo(String phoneSec) {

		final String namespace = "http://WebXml.com.cn/";
		String methodName = "getMobileCodeInfo";
		String serviceUrl = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
		final String soapAction = namespace + methodName;

		// 1.创建SoapObject的命名空间和调用的方法名
		SoapObject soapObject = new SoapObject(namespace, methodName);
		// 2.配置soapObject的两个参数
		soapObject.addProperty("mobileCode", phoneSec);
		soapObject.addProperty("userId", "");
		// 3. 实例化SoapSerializationEnvelope,传入WebService的SOAP协议的版本号
		final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
				SoapEnvelope.VER10);

		// 4.设置是否调用的是.Net开发的WebService
		envelope.setOutputSoapObject(soapObject);
		envelope.dotNet = true;

		// 5.创建HttpTransportSE对象,传递WebService服务器地址
		final HttpTransportSE transportSE = new HttpTransportSE(serviceUrl);

		Runnable runnable = new Runnable() {

			@Override
			public void run() {
				try {
					//调用webService
					transportSE.call(soapAction, envelope);
				} catch (IOException e) {
					e.printStackTrace();
				} catch (XmlPullParserException e) {
					e.printStackTrace();
				}

				try {
					//获取数据
					Object result = envelope.getResponse();
					Message msg = Message.obtain();
					msg.obj = result;
					handler.sendMessage(msg);
				} catch (SoapFault e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		};

		new Thread(runnable).start();

	}

}

关于这篇博客的其他内容,你可以查看Android平台调用WebService详解,讲的很详细

关于webService的更多基础知识,你可以查看Android开发之WebService介绍

讲解完毕~~~~

时间: 2024-08-01 22:43:53

在android平台下WebService的操作步骤的相关文章

[转帖]Android平台下OpenGL初步

原文请看 Android平台下OpenGL初步 本文只关注于如何一步步实现在Android平台下运用OpenGl. 1.GLSurfaceView GLSurfaceView是Android应用程序中实现OpenGl画图的重要组成部分.GLSurfaceView中封装了一个Surface.而android平台下关于图像的现实,差不多都是由Surface来实现的 2.Renderer 有了GLSurfaceView之后,就相当于我们有了画图的纸.现在我们所需要做的就是如何在这张纸上画图.所以我们需

在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

原文:在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤 Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访

转载分享:Android APP二次打包操作步骤介绍

看到好的技术教程就想转载一下,不喜勿喷!谢谢配合,仅供菜鸟学习研究,不要做坏事哦\(^o^)/~ 关于Android APP 二次打包现象已经屡见不鲜,为何"打包党"就吃准了Android平台,二次打包的操作过程到底有多简单? 本文将从Android apk的结构.二次打包的工具.步骤等方面向移动开发者说明二次打包操作的简单性,从而引起开发者对APP安全的重视,并及时对APP进行代码混淆或加固 保护等安全措施. 安卓apk的文件结构首先来看一下Android apk的内部文件结构. 随

Windows7中搭建Android x86 64及armv8-a操作步骤

1.        从https://developer.android.com/tools/sdk/ndk/index.html 下载android-ndk-r10d-windows-x86_64.exe 和 android-ndk-r10d-linux-x86_64.bin: 2.        在Ubuntu1404 64位中通过终端安装ndkr10d:./android-ndk-r10d-linux-x86_64.bin ; 3.        通过命令sudo  vi  /etc/pr

[转发]在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访问google存在问题,而且速度慢,这里采用离线安装包,拷贝Android SDK到指定目录 我这里拷贝到C

Android 平台下Ftp 使用模拟器需要住的的问题

以下代码在pc上测试通过,可是在android模拟器上就不工作,不过还可以链接到服务器但不能得到文件 纠结了半天,原来是模式的问题,具体请Google 模拟器中采用建议被动模式 public void getWorkMessage(){ FTPClient ftp = new FTPClient(); try { ftp.connect(server); System.out.println("Connected to " + server); System.out.print(ftp

Android 平台下Cordova 调用Activity插件开发

首先建立一个包名为package com.JiajiaCy.CallActivity; package com.JajaCy.CallActivity; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.PluginResult; import org.json.JSONArray; import org.json.JSONEx

ios及android两个平台下x264编译脚本

今年做了一些音视频编解码工作,此前做图形.图像类工作多一些,做了音视频编解码才知道,这项工作还是很有趣.很神奇的.比如采集几十M的视频数据,经过编码存储后,文件体积仅仅有几十K大小,这当中就需要x264来发挥神奇了.下面将手机端ios及android两个平台下x264编译脚本分享出来,希望对正在做相关工作的同学有帮助.x264源码地址:http://www.videolan.org/developers/x264.html 1. ios平台下x264编译.这个编译脚本修改自:https://gi

Android Ubuntu平台下ADB驱动的安装

在Android平台下做开发,adb总是需要使用到的,同时,因为linux没有windows这样操作傻瓜化,有些东西还是需要自行设置的,否则将会连接不上. 关于这些内容,google也有一定的描述,可以参考http://developer.android.com/tools/device.html 1. 确保设备已经连接正常 首先需要取得root权限,这个没啥说的.然后用lsusb命令列一下所有USB设备,如下图所示: 这里可以比较清楚的看到有一个设备,ID号是1782:5d04,如果你的系统上