Android中实现webservice通信

老早之前接触过安卓通过webservice和服务端交互,但是没有记录下来,这次又遇到了,所以记录一下。
使用方法其实很简单:

第一步

project的build.gradle里面添加仓库

        maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
第二步

app的build.gradle里面引入依赖

//    webservice
    implementation 'com.google.code.ksoap2-android:ksoap2-android:3.1.1'
第三步
        thread(start = true){
            // 命名空间
            val targetNameSpace = "DarASTW_Wes"
            val methodName = "GetAllStops"
            // 调用的方法名称
            val action = "$targetNameSpace/$methodName"
            //http://114.115.173.xxx:xxx/DarASTW_Wes.asmx
            val WSDL: String = GlobalConstants.RES_HOST
            // 指定WebService的命名空间和调用的方法名
            val rpc = SoapObject(targetNameSpace, methodName)
            // 设置需调用WebService接口需要传入的参数
            rpc.addProperty("ComputerID", "$ComputerID|")
            rpc.addProperty("FromStationID", "$FromStationID|")
            // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
            val envelope = SoapSerializationEnvelope(SoapEnvelope.VER11)
            envelope.bodyOut = rpc
            // 设置是否调用的是dotNet开发的WebService
            envelope.dotNet = true //必须为true 否则会报无此出发站  有毒!!
            envelope.setOutputSoapObject(rpc)
            val transport = HttpTransportSE(WSDL)
            try {
                // 调用WebService
                transport.call(action, envelope)
                // 得到远程方法返回的SOAP对象
                val resultObj: Any = envelope.response
                // 得到服务器传回的数据
                report(DestinationViewModel::class.java.simpleName,"getAllCity","获取所有到达站","$WSDL/$methodName",resultObj.toString())
            } catch (e: Exception) {
                report(DestinationViewModel::class.java.simpleName,"getAllCity ERROR","获取所有到达站","$WSDL/$methodName",e.message)
            }
        }
参考:

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex_ChuTT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值