于业务需要,需要和第三方对接一些接口,但是问题是,他们的接口提供是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的反序列化处理了。