安卓代码:

import android.os.Handler;
import android.os.Message; import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE; public class WebServiceUtils {
public interface CallBack {
void result(String result);
}
//参数说明,serviceUrl是.net的webservice地址,一般取得是http://IP地址:端口号/XXX.asmx
// methodName 是WebService上的接口名
// okparams 是 传递的参数以String的形式传递,传递Json可以先转为字符串,服务端再解析出来
//CallBack回调,获取返回的值
    public static void getResult(final String serviceUrl,final String methodName,final String okparams, final CallBack callBack) {
// 用于子线程与主线程通信的Handler
final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 将返回值回调到callBack的参数中
callBack.result((String) msg.obj);
}
};
new Thread(new Runnable() {
@Override
public void run() { try{
//.net上的命名空间+webwervice上的方法名
String soapAction = "http://tempuri.org/" + methodName;
//参数,命名空间,方法名
SoapObject request = new SoapObject("http://tempuri.org/", methodName);
//传递的参数,注意key要与.net方法的参数名一致
request.addProperty("okparams",okparams );
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
HttpTransportSE ht = new HttpTransportSE(serviceUrl);
ht.call(soapAction, envelope);
Object object;
if (envelope.getResponse() != null){
object = (Object)envelope.getResponse();
// SoapObject soapObject = (SoapObject) envelope.getResponse();
// 将结果利用Handler发送到主线程
mHandler.sendMessage(mHandler.obtainMessage(1, object.toString())); }
if (envelope.bodyIn instanceof SoapFault) {
SoapFault error = (SoapFault) envelope.bodyIn;
// 将异常的消息利用Handler发送到主线程
mHandler.sendMessage(mHandler.obtainMessage(0, error.toString()));
} }catch (Exception ex)
{
mHandler.sendMessage(mHandler.obtainMessage(-1, ex.getMessage()));
} }
}).start();
}
} //使用实例
WebServiceUtils.getResult(serviceUrl, methodName, 传递的参数, new WebServiceUtils.CallBack() {
@Override
public void result(String result) {
//返回值
String res = result; }
}); //.Net部分代码

/// <summary>
/// test 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class test : System.Web.Services.WebService
{

[WebMethod]

public string HelloWorld(string okparams)
   {

return "Hello World";
  }

}


												

Android 连接.net WebService 工具类代码的更多相关文章

  1. Android开源项目大全 - 工具类

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  2. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  3. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  4. Jedis工具类代码

    安装Redis可以参考 https://www.cnblogs.com/dddyyy/p/9763098.html Redis的学习可以参考https://www.cnblogs.com/dddyyy ...

  5. Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...

  6. 关于TornadoFx和Android的全局配置工具类封装实现及思路解析

    原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...

  7. android -------- 压缩图片文件工具类

    项目中常常遇到文件压缩问题,上传文件大小限制 今天简单的分享一点干货,文件压缩,图片压缩,压缩Bitmap 主要通过尺寸压缩和质量压缩,以达到清晰度最优 效果图 源码地址: https://githu ...

  8. Android弹出Toast工具类总结

    Android弹出Toast工具类总结,包括系统自带的,也包括自定义的. public class ToastUtil { public ToastUtil() { } public static T ...

  9. 获取 Android APP 版本信息工具类(转载)

    获取 Android APP 版本信息工具类 获取手机APP版本信息工具类 1.获取版本名称 2.获取版本号 3.获取App的名称 package com.mingyue.nanshuibeidiao ...

随机推荐

  1. PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)

    1040 Longest Symmetric String (25 分)   Given a string, you are supposed to output the length of the ...

  2. 【Leetcode_easy】806. Number of Lines To Write String

    problem 806. Number of Lines To Write String solution: class Solution { public: vector<int> nu ...

  3. c# 结构体struct注意事项

    c# 结构struct注意事项 1,不能定义无参构造函数,因为隐式的默认无参构造函数不能被重写 2,当为某个结构编写带有参数的构造函数时,必须显式初始化所有成员,否则编译不过. 3,不允许在结构的实例 ...

  4. FineReport点击输入框直接展示下拉框列表

    引用自帆软官方文档-http://help.finereport.com/doc-view-1899.html 1. 描述 下拉框以及下拉复选框默认状态,必须点击最右侧的三角才可以实现下拉,不够人性化 ...

  5. CenOS 7 java链接redis数据库

    完整代码 public class App { public static void main(String[] args) { System.out.println("Hello Worl ...

  6. windows服务器入门 安装配置IIS和ASP

    本人以windows2012R2为例   其他版本都大同小异   可以按照这个来 1) 点击Windows云服务器左下角[开始(Start)],选择[服务器管理器(Server Manager)],打 ...

  7. Information Cartography

    作者:Dafna Shahaf 会议:ACM 2015.    研究大背景:自动化地从很大数据集中提取结构化的知识变得越来越难.在本篇文章中,我们将探索我们在文献中(25,26,27)中创立的方法来自 ...

  8. hdoj3746(kmp算法的nex数组求最小循环节)

    题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的. 思路: 应用到kmp中nex数组的性质,数 ...

  9. [LuoguP1155]双栈排序_二分图_bfs

    双栈排序 题目链接:https://www.luogu.org/problem/P1155 数据范围:略. 题解: 神仙题. 就第一步就够劝退了. 这个二分图非常不容易,首先只有两个栈,不是属于一个就 ...

  10. [转帖]为微软效力15年的微软前员工解释Windows 10为什么问题这么多

    为微软效力15年的微软前员工解释Windows 10为什么问题这么多 https://www.cnbeta.com/articles/tech/892109.htm . 测试团队已经被裁撤 . 自动化 ...