在做项目时,应用了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在进入方法中才能看到
分享到:
相关推荐
该压缩包文件“Android应用源码WebService+ksoap2天气查询项目.zip”主要包含了一个基于Android平台的天气查询应用的源代码,使用了Web Service技术和ksoap2库来实现。这个项目是一个很好的学习资源,帮助开发者了解...
本教程主要探讨如何在Android应用中通过WebService访问SQLServer数据库,实现数据的增、删、查操作。以下是相关知识点的详细说明: 1. **Android平台与Web服务的交互**: Android系统提供了多种方式与远程服务器...
本文将详细介绍如何使用KSOAP2库在Android应用中调用.NET WebService。 #### 二、准备工作 在正式介绍调用过程之前,我们需要做一些准备工作: 1. **环境搭建**:确保已经安装了Android Studio,并且创建了一个新...
这里的示例将详细介绍如何在Android应用中通过WebService接口验证用户登录信息。主要涉及的技术点包括XML或JSON数据格式、HTTP请求、以及SOAP或RESTful API的使用。 1. **WebService基础** WebService是一种基于...
它涉及到的主要知识点包括Android应用开发、WebService通信以及ksoap2库的使用。 1. **Android应用开发**:Android是一个开源的操作系统,主要用于移动设备如智能手机和平板电脑。在Android平台上开发应用程序,你...
在本篇文章中,我们将基于给定的代码片段来探讨如何在Android应用程序中集成WebService功能,并实现与服务器端的数据交换。本文将详细介绍WebService的基本概念、在Android中的实现方法以及具体的代码示例分析。 ##...
本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增删改查操作。 首先,理解概念: 1. Android:Android是一种开源操作系统,主要用于移动设备,如智能手机和平板电脑。 2. ...
【Android开发之WebService介绍】 在Android开发中,与远程服务器进行数据交互是常见的...通过使用WebService,开发者可以轻松地集成各种服务,如天气预报、地图定位、支付接口等,极大地扩展了Android应用的功能。
KSOAP2是一个轻量级的库,用于在Android平台上执行SOAP请求。创建一个`SoapObject`代表Web Service的方法,并添加参数。在这里,`methodName`是Web Service接口中的方法名,`fileName`是图片的名称,`imageBuffer`是...
3. **启动和停止服务**:在Android应用中,你需要在合适的时机启动和关闭NanoHttpd服务器。通常,这会在应用的onCreate()和onDestroy()方法中完成: ```java MyWebServer server = new MyWebServer(8080); // ...
客户端开发是指在 Android 平台上创建一个客户端应用程序,以便调用服务端的 Webservice。在 Delphi XE5 中,可以使用 THTTPRIO 控件来调用 Webservice。 首先,打开 Delphi XE5,创建一个新的移动项目,并添加一个...
本文将详细介绍如何在Android应用中利用Axis2来调用Web Service。 **一、Android与Web Service交互基础** 1. **SOAP(Simple Object Access Protocol)**: 是一种轻量级的协议,用于交换结构化的和类型化的信息。...
简单的航班查询源码,使用...的WebService接口实现。正在学习WebService的同学可以看一下。因为代码量不大,所以基本没加注释 涉及模块&技术 WebService
本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...
本主题将深入探讨如何在Android应用中调用Web服务,特别是基于SOAP协议的Web服务,即“Android与服务器端数据交互(基于SOAP协议整合android+webservice)”。 SOAP(Simple Object Access Protocol)是一种轻量级...
这个压缩包文件“Android应用源码WebService航班查询源码.zip”提供了一个用于查询航班信息的Android应用程序的源代码。从标题和描述中我们可以推断,这个应用利用了WebService技术来获取并显示航班数据。让我们深入...
Web Service通常采用SOAP或RESTful API的形式提供服务,允许客户端应用程序(如Android应用)发送请求并接收响应。本教程将深入探讨如何在Android中实现调用WebService接口进行登录功能,并基于提供的"login"源码...
它支持SOAP 1.1和SOAP 1.2协议,能方便地构建和解析SOAP消息,简化了Android应用与远程Web服务之间的通信。 3. **Android端调用流程** - **创建SOAP请求**:首先,需要构建一个SOAP请求对象,包括SOAP动作、SOAP...