加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService之简单的访问接口,上传参数并获取数据

发布时间:2020-12-16 21:58:30 所属栏目:安全 来源:网络整理
导读:今天来简单说一下关于访问WebService接口,上传参数的问题 关于Webservice 我就不多说了,下面以公司的项目中用到的接口来实现以下: 1.准备工作: ? 在开始之前,有几个名词我们需要明白: 看一下上面的文件: ?1.红圈一:Action 在Ws的规范里,用来定义消

今天来简单说一下关于访问WebService接口,上传参数的问题

关于Webservice 我就不多说了,下面以公司的项目中用到的接口来实现以下:

1.准备工作:

? 在开始之前,有几个名词我们需要明白:


看一下上面的文件:

?1.红圈一:Action 在Ws的规范里,用来定义消息请求的地址,也就是消息发送到哪个操作方法里, 这个就我们要访问的方法;

?2.红圈二:命名空间,没有特别的含义,方便查找

?3.红圈三:表示的我们需要准备参数,后面是他们类型,这里都是String类型


简单整理一下:

?访问接口需要以下四个变量:

private static final String NAMESPACE ="http://tempuri.org/"; private static String URL="http://******/seal.asmx";//不公开 private static final String METHOD_NAME ="logincheck"; private static String SOAP_ACTION ="http://tempuri.org/logincheck";
声明:

WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,但这些开发包对于Android系统过于庞大,也未必很容易移植到Android系统中。因此,这些开发包并不是在我们的考虑范围内。适合手机的WebService客户端的SDK有一些,比较常用的有Ksoap2,可自行下载,导入即可;




2.开始访问

? 获取参数后

public void getLogin(String name,String pass) {
    try {
        System.out.println("rpc------");
        SoapObject rpc =new SoapObject(NAMESPACE,METHOD_NAME);
        System.out.println("rpc"+ rpc);
        rpc.addProperty("username",name);
        rpc.addProperty("password",pass);

        AndroidHttpTransport ht =new AndroidHttpTransport(URL);
        ht.debug =true;

        SoapSerializationEnvelope envelope =new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.bodyOut = rpc;
        envelope.dotNet =true;
        envelope.setOutputSoapObject(rpc);

        ht.call(SOAP_ACTION,envelope);

        SoapObject result = (SoapObject) envelope.bodyIn;

        Toast.makeText(MainActivity.this,"ok----" + envelope.bodyIn.toString(),Toast.LENGTH_LONG).show();

        tv.setText("Return:" +envelope.bodyIn.toString());

        return;
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(MainActivity.this,"error-----"+e.toString(),Toast.LENGTH_LONG).show();//出现异常
        tv.setText("" + e.toString());
        Log.d("--------",e.toString());

    }
}

??? 结果:


??????????????????


???? 成功访问接口,获取服务器返回值,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读