记录一次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的反序列化处理了。

 

posted @ 2018-09-01 12:42  Rexcnblog  阅读(521)  评论(0编辑  收藏  举报