工具:VS 2010和android studio2.2

首先建c#的web service

vs2010已经没有直接创建web服务的选项,只能先建网站然后再添加web服务;(具体的创建网上都有)

[WebService(Namespace = "http://xxx.com/")]这个是命名空间最好改一下 android必配

在app_code中新建一个方法:

[WebMethod]//这个必须加
    public string userExist(string userName, string passWord)
    {
        //LogUtil.LogInfo("客户端发来信息:"+userName);
        //LogUtil.LogInfo("客户端发来信息:" + passWord);
        if (userName == "1" && passWord == "1")
            return "Y";
        else
            return "N";
    }

在电脑上安装iis,然后将网站发布到iis中 (注意:如果开发用的是.net4的,安装iis的时候选择

要选择asp.net4.6就可以了。

然后在网页测试iis是否成功;

android端;

新建一个工程

android调用web service需要下载jar包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar

加载到工程就可以使用了

具体代码:

String NAME_SPACE ="http://xxx.com/";//命名空间
String METHOD_NAME ="userExist";//方法名
String ENDPOINT ="http://192.168.137.1:8080/WebService.asmx";//web service的地址

SoapObject soapObject = new SoapObject(NAME_SPACE, METHOD_NAME);//创建一个web service方法
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//envelope.bodyOut=soapObject;
// 设置是否调用的是dotNet开发的WebService
envelope.dotNet = true;

//我是用的多个函数,在这里就直接贴出来了合并了
PropertyInfo[] propertyInfos = new PropertyInfo[2];
propertyInfos[0] = new PropertyInfo();
propertyInfos[0].type = PropertyInfo.STRING_CLASS;
propertyInfos[0].setName("userName");//注意参数名必须相同
propertyInfos[0].setValue(1);
propertyInfos[1] = new PropertyInfo();
propertyInfos[1].type = PropertyInfo.STRING_CLASS;
propertyInfos[1].setName("passWord");");//注意参数名必须相同
propertyInfos[1].setValue(1);

if (propertyInfos != null)
for (int i = 0; i < propertyInfos.length; i++) {
soapObject.addProperty(propertyInfos[i]);
}
// 等价于envelope.bodyOut = rpc;  
envelope.setOutputSoapObject(soapObject);
HttpTransportSE transport = new HttpTransportSE(ENDPOINT);
try {
transport.call(soapn, envelope);

} catch (Exception e) {
e.printStackTrace();
}
String result = null;
// 获取返回的数据  

if (envelope.bodyIn instanceof SoapFault) {
final SoapFault sf = (SoapFault) envelope.bodyIn;
result = sf.faultstring;
System.out.println(result);
}else {
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果  
System.out.println(object.toString());
result = object.getProperty(0).toString();
System.out.println(result);

}
输出结果: