美文网首页NetAndroid知识Android开发
Android调用C# .net 的WebService接口

Android调用C# .net 的WebService接口

作者: Cloverss | 来源:发表于2017-03-08 09:07 被阅读495次

    这是在项目中遇到的,公司的后台是用C# .net写的,在Android设备中调用后台接口。
    这里我们需要引用一个第三方的jar包,ksoap2,大家可以百度一下,然后把它添加到我们的Android工程中。
    需要注意的地方:

    • 权限一定要开,需要访问网络
    • 访问网络需要在非主线程中访问

    然后就是接下来的代码:

            //访问空间,由于当时是本地测试,默认都是"http://tempuri.org/"
            String nameSpace = "http://tempuri.org/";
            //访问方法名称
            String methodName ="Login";  
                 
            final String URL = "http://192.168.0.123/AppService/Service.asmx";
            final String soapAction = "http://tempuri.org/Login";
    
            final SoapObject soapObject = new SoapObject(nameSpace,methodName);
    
            //此处的参数,是要访问接口时需要传入的参数,键值对形式
            soapObject.addProperty("userName","admin");
            soapObject.addProperty("password","");
    
            // 这里的版本"SoapEnvelope.VER10",可以在11,12,之间测试,看自己需要哪个
            final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
    
            envelope.bodyOut = soapObject;
    
            // 后台用.net写,这个一定要有
            envelope.dotNet = true;
    
            envelope.setOutputSoapObject(soapObject);
            final HttpTransportSE transport = new HttpTransportSE(URL);
    
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        //这里调用Call方法访问网络,在子线程中进行
                        transport.call(soapAction, envelope);
                        
                        // 获取响应,此处ksoap已经把返回结果以对象的形式给我们,直接调用即可
                        final SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
                        System.out.println("*********************");
                        System.out.println(result.toString());
    
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
    

    相关文章

      网友评论

        本文标题:Android调用C# .net 的WebService接口

        本文链接:https://www.haomeiwen.com/subject/hjzvgttx.html