之前一直也没有做过android的项目  java也是几年前学过  早忘记了

但是用到的时候还是得学学  所以对于android 就更加的是一个初学者了

只是针对于遇到的几个问题做个解释

环境是这样的:

Eclipse: 最新的最好

JDK: 1.7

Android SDK: 22.62

KSoap2:    ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar   ,   ksoap2-android.jar

至于为什么贴出来两个KSoap2的jar包 其实呢 我也只是遇到一个问题 需要两个  后续会说明

创建自己的asp.net的 webservice

我们可以看到 在4.0的时候 是没有asp.net web 服务 这个项目类型的  其实4.0也是可以建立的 只不过要建立一个asp.net的空网站 但是在这里就不说了
我们直接选择4.0以下的版本 是有这个的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using TestClass;[WebService(Namespace = "http://lizq.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]public class Service : System.Web.Services.WebService
{public Service () {//如果使用设计的组件,请取消注释以下行 //InitializeComponent(); }[WebMethod]public string LoginUser(UserModel model){return new LoginService().LoginUser(model);}}

对于 传入的参数 UserMode  是我们自己建立的一个对象类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace TestClass
{public class UserModel{private string userName;public string UserName{get { return userName; }set { userName = value;}}private string passWord;public string PassWord{get { return passWord; }set { passWord = value; }}}
}

最后就是把webservice 部署到IIS

我们来查看一下部署后的信息

  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button loginButton=(Button)findViewById(R.id.button1);nameText=(EditText)findViewById(R.id.editText1);passText=(EditText)findViewById(R.id.editText2);StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork()   // or .detectAll() for all detectable problems
        .penaltyLog().build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());loginButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub
                Login();}});if (savedInstanceState == null) {getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}}

 protected void Login(){String nameSpace = "http://lizq.org/";String methodName = "LoginUser";String soapAction = "http://lizq.org/LoginUser";String url = "http://192.168.1.42:5179/Service.asmx?WSDL";//后面加不加那个?wsdl参数影响都不大//建立webservice连接对象org.ksoap2.transport.HttpTransportSE transport = new HttpTransportSE(url,30000);transport.debug = true;//是否是调试模式//设置连接参数SoapObject soapObject = new SoapObject(nameSpace, methodName);UserModel user=new UserModel();user.setProperty(0, nameText.getText().toString());user.setProperty(1, passText.getText().toString());PropertyInfo pi = new PropertyInfo();pi.setName("model");pi.setValue(user);pi.setType(user.getClass());soapObject.addProperty(pi);//将自定参数加入请求对象中//设置返回参数SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);//soap协议版本必须用SoapEnvelope.VER11(Soap V1.1)envelope.dotNet = true;//注意:这个属性是对dotnetwebservice协议的支持,如果dotnet的webservice 不指定rpc方式则用true否则要用falseenvelope.bodyOut = soapObject;//envelope.setOutputSoapObject(soapObject);//设置请求参数envelope.addMapping(nameSpace, "UserModel", user.getClass());//传对象时必须,参数namespace是webservice中指定的, name是服务器类型的名称, claszz是自定义类的类型try {transport.call(soapAction, envelope);Object sb = (Object)envelope.bodyIn;//服务器返回的对象存在envelope的bodyIn中Object us= (Object)envelope.getResponse();//直接将返回值强制转换为已知对象if(us.toString()==""){}} catch (IOException e) {// TODO Auto-generated catch block
         e.printStackTrace();} catch (XmlPullParserException e) {// TODO Auto-generated catch block
         e.printStackTrace();} catch(Exception ex){ex.printStackTrace();}return ;}

由于时间问题  不写了

遇到问题 去这几个网站

http://blog.csdn.net/xiaochunyong/article/details/7765338

http://blog.csdn.net/java_chuan/article/details/6617776

http://blog.csdn.net/zjtbetter/article/details/12890831

http://my.eoe.cn/iceskysl/archive/4382.html

转载于:https://www.cnblogs.com/lizhiqiang/p/3630068.html

android 连接 asp.net webservice 简单记录相关推荐

  1. android 调用asp.net webservice 图片上传到服务器

    图片转换: package com.qsmart.audit.utility;import java.io.ByteArrayOutputStream; import java.io.File; im ...

  2. Lettuce连接池超时问题简单记录

    使用Lettuce连接池,隔一段时间不连,再去连,就出现超时问题 问题分析定位 解决方案 方案一 方案二 问题分析定位 一直连着没问题,只要间隔一段时间不连,再去连的时候就会出现超时问题,超时几次后就 ...

  3. android连接sqlite进行简单的增删改查和事务管理

    为什么80%的码农都做不了架构师?>>>    Android连接数据库sqlite并进行简单的表创建和增删改查功能参考代码,使用Android单元测试进行验证,首先新建项目进行配置 ...

  4. 连接Android与ASP.NET Core Web API的完整教程

    目录 准备数据库 ASP.NET Core Web API项目 创建新的ASP.NET Core Web API项目 实体 导入EF Core 创建DbContext 将连接字符串添加到appsett ...

  5. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务

    Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务 参考博客:http://blog.csdn.net/zhyl8157121/article/d ...

  6. Android连接SQLServer详细教程(数据库+服务器+客户端)

    本文为原创,如果转载请注明出处 http://blog.csdn.net/zhyl8157121/article/details/8169172 其实之前发过一篇这样的博文http://blog.cs ...

  7. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  8. Android原生绘图进度条+简单自定义属性代码生成器

    零.前言 1.感觉切拼字符串是个很有意思的事,好的拼接方式可以自动生成一些很实用的东西 2.本文自定义控件并不是很高大上的东西,目的在于计录自定义控件的书写规范与行文流程 3.建议大家自定义控件时自定 ...

  9. 最详细Android连接远程的MySQL数据库实例

    最详细Android连接远程的MySQL数据库实例 tags:MySQL 文章目录 最详细Android连接远程的MySQL数据库实例 前言 环境配置 查看MySQL:version方法 新建Andr ...

最新文章

  1. 构建插件式的应用程序框架(六)----通讯机制(ZT)
  2. 数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(上)
  3. oracle-rman-list命令收集
  4. VR开发从何入手的实战分享
  5. SQL Server2005如何进行数据库定期备份(转)
  6. Web前端开发笔记——第二章 HTML语言 第五节 图像标签
  7. 前端学习(773):内置对象介绍
  8. MySQL:备份数据库脚本报错mysqldump: Couldn‘t execute ‘SELECT COLUMN_NAME****
  9. cortex-m 2017 whitepaper (English and Chinese)
  10. docker+mysql+授权_docker安装mysql, 授权远程连接
  11. 索罗斯基金管理公司 CIO:比特币正在抢夺黄金的市场份额
  12. Myeclipse XXX.jsp文件 中文乱码问题 (同时适用于mac版)
  13. wps xml转换表格_wps手机版下载-WPS Office 安卓版v12.9.2
  14. Java生成、解析二维码方案以及代码实现
  15. Linux摄像头驱动框架
  16. firefox被hao.360劫持的处理方法
  17. STM32 RTOS创建消息队列的两种方式(解决数据类型问题)
  18. Matlab生成.exe可执行程序
  19. 几款H桥电机驱动芯片直流有刷电机驱动芯片性能分析
  20. Ubuntu下如何查看已安装软件版本

热门文章

  1. mockjs针对value生成随机数值(随机字符串,数值,日期,url,图片地址,email,ip等)
  2. Java客户端操作HBase:插入数据(逐条插入与批量插入)代码示例
  3. Python3算术运算符
  4. 在java中会存在内存泄漏吗?
  5. 请说明一下Spring中BeanFactory和ApplicationContext的区别是什么?
  6. matlab二维矩阵可视化几种方法
  7. Python 为啥不建议使用 thread模块?
  8. 动态折线图-Android篇
  9. c语言mktime,在C语言中转换时间的基本方法介绍
  10. 微信v3app支付php,php微信支付之APP支付方法_php技巧