`
hilary3113
  • 浏览: 265888 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

Android上应用WebService

阅读更多

 

在做项目时,应用了WCF,在传输数据时,首先把数据转换成字符串,这样,就会产生很多问题,例如:如果数据是出现一些特殊符号(?、#等)这样数据就会出错。现在我要扩展功能,发现WCF的最大弊端,WCF是不能传数据流的,也我是我的能力有限。最后还是决定把WCF换回WebService,在这里给大家一个小例子,供大家参考,有什么不懂的发邮件给我:

用WebService需要一个jar包,可以去官网上下:http://code.google.com/p/k/ksoap2-android/downloads/list

Main.java

package com.action;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**
 * @Author: hilary
 * @Date: 2011-2-12
 **/
public class Main extends Activity implements OnClickListener {

	private EditText mEditText;
	private TextView mTextView;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Button button = (Button) findViewById(R.id.button);
		button.setOnClickListener(this);
		mEditText = (EditText) findViewById(R.id.edittext);
		mTextView = (TextView) findViewById(R.id.textview);
	}

	public void onClick(View view) {
		//连接.net代码
		try {
			String serviceUrl = "http://192.168.3.178/WebTest/Service1.asmx";
			// 方法名
			String methodName = "UPlOAD";
			//命名空间名
			String namespace = "http://tempuri.org/";
			/*
			 * "http://tempuri.org/" 为命名空间,命名空间是.net默认的
			 * 通过SoapObject类 创建一个对象,以命名空间和要访问的方法名构造
			 */
			SoapObject request = new SoapObject(namespace,
					methodName);
			//添加传递的参数名称及值,这是城的参数名称是任意的,可以不与服务上的方法名称一至
			request.addProperty("name", "23");
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
					SoapEnvelope.VER11);
			envelope.dotNet = true;
			envelope.setOutputSoapObject(request);
//			envelope.bodyOut = request;
			HttpTransportSE htp = new HttpTransportSE(serviceUrl);
//			AndroidHttpTransport httpTransport = new AndroidHttpTransport(serviceUrl);
			// 要访问的命名空间+方法名,也就是别人说的ACTION
			htp.call(namespace+methodName, envelope);
//			httpTransport.call(null, envelope);
//			SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
			String result = envelope.getResponse().toString();
			ShowDialog(result);
		} catch (Exception e) {
			e.printStackTrace();
			ShowDialog(e.getMessage());
		}

		/*
		 * 连接Java代码 String serviceUrl =
		 * "http://192.168.1.236:8080/axis2/services/SimpleServer?wsdl"; String
		 * methodName = "getGreeting"; SoapObject request = new
		 * SoapObject("http://ws.apache.org/axis2",methodName);
		 * request.addProperty("name",mEditText.getText().toString());
		 * SoapSerializationEnvelope envelope = new
		 * SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut =
		 * request; HttpTransportSE ht = new HttpTransportSE(serviceUrl); try{
		 * ht.call(null, envelope); if(envelope.getResponse() != null)
		 * {//ShowDialog("连接服务");
		 * mTextView.setText(envelope.getResponse().toString()); }
		 * }catch(Exception e){
		 * 
		 * }
		 */
	}

	public void ShowDialog(String msg) {
		new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)
				.setPositiveButton("OK", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
					}
				}).show();
	}
}

 我用的是.net服务,我对.net不太董,在这里就不写了,可以去参考别人的代码

在上面的命名空间,方法名,Action等信息都可以在我们用连接打开页面中找到,其中Action在进入方法中才能看到

 

分享到:
评论
2 楼 hilary3113 2011-09-15  
ouyangtianhan 写道
谢谢,学习了。
请教个问题:我的也是用的KSoap2,wsdl是自己写的。但是,当执行完之后,总是报错说:Method “...” not implemented!
而如果我,给MethodName赋值为“types”中的“element”标签的name的时候,就可以得到response。
请教这是为什么呢》????
谢谢先

这我也不太清楚,只能自己多调试了
1 楼 ouyangtianhan 2011-09-14  
谢谢,学习了。
请教个问题:我的也是用的KSoap2,wsdl是自己写的。但是,当执行完之后,总是报错说:Method “...” not implemented!
而如果我,给MethodName赋值为“types”中的“element”标签的name的时候,就可以得到response。
请教这是为什么呢》????
谢谢先

相关推荐

    Android应用源码WebService+ksoap2天气查询项目.zip

    该压缩包文件“Android应用源码WebService+ksoap2天气查询项目.zip”主要包含了一个基于Android平台的天气查询应用的源代码,使用了Web Service技术和ksoap2库来实现。这个项目是一个很好的学习资源,帮助开发者了解...

    Android通过WebService访问SQLServer

    本教程主要探讨如何在Android应用中通过WebService访问SQLServer数据库,实现数据的增、删、查操作。以下是相关知识点的详细说明: 1. **Android平台与Web服务的交互**: Android系统提供了多种方式与远程服务器...

    android 调用.net webservice

    本文将详细介绍如何使用KSOAP2库在Android应用中调用.NET WebService。 #### 二、准备工作 在正式介绍调用过程之前,我们需要做一些准备工作: 1. **环境搭建**:确保已经安装了Android Studio,并且创建了一个新...

    ANDROID中使用WEBSERVICE验证用户登录的示例

    这里的示例将详细介绍如何在Android应用中通过WebService接口验证用户登录信息。主要涉及的技术点包括XML或JSON数据格式、HTTP请求、以及SOAP或RESTful API的使用。 1. **WebService基础** WebService是一种基于...

    安卓Android源码——WebService+ksoap2天气查询项目.zip

    它涉及到的主要知识点包括Android应用开发、WebService通信以及ksoap2库的使用。 1. **Android应用开发**:Android是一个开源的操作系统,主要用于移动设备如智能手机和平板电脑。在Android平台上开发应用程序,你...

    android webserviceandroid webserviceandroid

    在本篇文章中,我们将基于给定的代码片段来探讨如何在Android应用程序中集成WebService功能,并实现与服务器端的数据交换。本文将详细介绍WebService的基本概念、在Android中的实现方法以及具体的代码示例分析。 ##...

    Android通过webservice连接Sqlserver实例

    本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增删改查操作。 首先,理解概念: 1. Android:Android是一种开源操作系统,主要用于移动设备,如智能手机和平板电脑。 2. ...

    Android开发之WebService介绍

    【Android开发之WebService介绍】 在Android开发中,与远程服务器进行数据交互是常见的...通过使用WebService,开发者可以轻松地集成各种服务,如天气预报、地图定位、支付接口等,极大地扩展了Android应用的功能。

    Android客户端调用webService上传图片到服务器

    KSOAP2是一个轻量级的库,用于在Android平台上执行SOAP请求。创建一个`SoapObject`代表Web Service的方法,并添加参数。在这里,`methodName`是Web Service接口中的方法名,`fileName`是图片的名称,`imageBuffer`是...

    Android NanoHttpd搭建webservice

    3. **启动和停止服务**:在Android应用中,你需要在合适的时机启动和关闭NanoHttpd服务器。通常,这会在应用的onCreate()和onDestroy()方法中完成: ```java MyWebServer server = new MyWebServer(8080); // ...

    delphi XE5 ANDROID平台 调用 webservice并访问操作MSSQL数据库

    客户端开发是指在 Android 平台上创建一个客户端应用程序,以便调用服务端的 Webservice。在 Delphi XE5 中,可以使用 THTTPRIO 控件来调用 Webservice。 首先,打开 Delphi XE5,创建一个新的移动项目,并添加一个...

    Android axis调用Webservice

    本文将详细介绍如何在Android应用中利用Axis2来调用Web Service。 **一、Android与Web Service交互基础** 1. **SOAP(Simple Object Access Protocol)**: 是一种轻量级的协议,用于交换结构化的和类型化的信息。...

    Android应用源码WebService航班查询源码

    简单的航班查询源码,使用...的WebService接口实现。正在学习WebService的同学可以看一下。因为代码量不大,所以基本没加注释 涉及模块&技术 WebService

    java android 调用webservice

    本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...

    android平台调用webservice

    本主题将深入探讨如何在Android应用中调用Web服务,特别是基于SOAP协议的Web服务,即“Android与服务器端数据交互(基于SOAP协议整合android+webservice)”。 SOAP(Simple Object Access Protocol)是一种轻量级...

    Android应用源码WebService航班查询源码.zip

    这个压缩包文件“Android应用源码WebService航班查询源码.zip”提供了一个用于查询航班信息的Android应用程序的源代码。从标题和描述中我们可以推断,这个应用利用了WebService技术来获取并显示航班数据。让我们深入...

    android调用webservice接口实现登陆源码

    Web Service通常采用SOAP或RESTful API的形式提供服务,允许客户端应用程序(如Android应用)发送请求并接收响应。本教程将深入探讨如何在Android中实现调用WebService接口进行登录功能,并基于提供的"login"源码...

    android 调用 Webservice源码

    它支持SOAP 1.1和SOAP 1.2协议,能方便地构建和解析SOAP消息,简化了Android应用与远程Web服务之间的通信。 3. **Android端调用流程** - **创建SOAP请求**:首先,需要构建一个SOAP请求对象,包括SOAP动作、SOAP...

Global site tag (gtag.js) - Google Analytics