• 记录一次WebService使用的经历


    于业务需要,需要和第三方对接一些接口,但是问题是,他们的接口提供是webservice的,本人只精通restful接口(也就是说我比较年轻^-^)。好在对面人特别奈斯,一顿指导我,感谢。

    废话不多说了。

    首先对方先发了个word文档给我了,里边包括协议内容(其他内容省略)

    <?xml version="1.0" encoding="GBK"?>
    <root>
        <body>
            <hphm>MD5加密(Oracle)</hphm>
            <hpzl>02</hpzl>
        </body>
    </root>
        

    然后紧接着给了个xml文件,就是webservice的

    就是正常的标准结构

    xml,types, message,binding,service等结构

     首先拿到这个,我直接安装了一个soapui。只是个适用版本的,没有破解版,因为用到不多,就不去破解了。

    然后直接给这个xml导入到soapui里,

    导入后会在soapui中出现这个

    然后,双击这个Request1,就可以模拟发送webservice请求

    这里的东西需要注意下,因为这个入参就是一个xml文档,所以这里需要转化一次,就是套一层CDATA即可。

    右侧就是返回的数据,也是xml数据。进行反解析即可。

    那么问题来了,工具能调通的接口,最终需要在代码中实现的,首先对于一个webservice小白来说,一脸懵啊。亏得有高人指点。而且我用的也是C#,那么就很简单了。

    百度一下,C#调用webservice,就是直接引用服务,参考https://www.cnblogs.com/Brambling/p/6815565.html

    接下来,就来个简单的 webservice 的调用示例。

    先添加一个控制台应用程序,然后右键引用,选择添加服务引用。

    点击高级,然后在弹出来的页面点击 添加web引用。

    然后点添加引用

    引用后,就会创建这个了。

    然后直接实例化这个类就行了,调用起来特别方便了。

    string plate = "B2EB89"; //加密前数据
    string plateMD5; //加密后数据
    plateMD5 = ValueConvert.MD5(plate);
    plateMD5 = plateMD5.Replace("-", "");
    WebReference.Num114Service num114Service = new WebReference.Num114Service();
    string xmlRes = num114Service.GetNum("<?xml version="1.0" encoding="GBK"?><root><body><hphm>" + plateMD5 + "</hphm><hpzl>02</hpzl></body></root>");

    然后这个返回的字符串就是

    <?xml version="1.0" encoding="GBK"?><root><head><zt>1</zt><items>1</items></head><result num=1><lxdh>13322293871</lxdh></result></root>

     然后就是xml的反序列化处理了。

  • 相关阅读:
    关于Python安装PIL库失败的原因
    SSH免密登录及配置完成后仍需要输入密码的解决办法
    Github+Hexo博客搭建教程(三)
    Github+Hexo博客搭建教程(二)
    Github+Hexo博客搭建教程(一)
    winform中控件的简单数据绑定
    分享一个跨线程访问控件的很实用的方法
    自定义两个控件,一个是显示图标和文字的矩形,一个是带边框的label(但是不是label)
    写一个给字符串根据长度添加换行符的处理方法
    Winform DataGridView控件在业务逻辑上的简单使用
  • 原文地址:https://www.cnblogs.com/Rexcnblog/p/9569930.html
Copyright © 2020-2023  润新知