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

记录一次WebService使用的经历的更多相关文章

  1. 记录第n次网站渗透经历

    如标题所示,第x次实战获取webshell的经历是非常美好且需要记录的(毕竟开始写博客了嘛).这能够证明这一路来的学习没有白费,也应用上了该用的知识. 首先怎么说呢,某天去补天看了看漏洞,发现有一个网 ...

  2. webserive学习记录3-eclipse创建webservice

    在用J2EE版的ECLIPSE学习WEBSERVICE的时候发现原来直接用该ECLIPSE就可以创建webservice,然后就自己动手用ECLIPSE自带的功能来建立WEBSERVICE服务端和客户 ...

  3. [python]记录Windows下安装matplot的经历

    最近学习在看<机器学习实战>一书,第二章的时候要用到Natplotlib画图,于是便开始安装Matplotlib.本文所用到的所有安装包都可以在文末的链接中找到. 首先从Matplotli ...

  4. 再记录一次delete出错的经历

    调试的时候进行到delete语句时出现问题,我做的操作是在函数体内用int*申请了N个内存空间,这让我十分纳闷,为什么不能delete呢? 回忆到之前delete出错也遇过一次问题 手动封装OpenC ...

  5. 记录一次json转换的经历

    需求:数据库里面的一个字段,存的是json数据,类似{‘name’:“name1”,'items':“[{code:0,name:'name2'}]”},{‘name’:“name3”,'items' ...

  6. 记录一次乱码问题修复经历!排查修复Poi-tl使用HttpServletResponse导出Word乱码问题

    问题 Poi-tl中HttpServletResponse导出Word乱码问题: 文件名使用中文,中文名乱码 导出的文件下载后乱码 原因 文件名中文乱码: 没有设置文件名的编码规则 文件下载乱码: 在 ...

  7. Java面试连环炮问题收集记录贴【JVM方面】

    写这类文章是为了记录下网上看到的/自己经历的一些一环扣一环的面试问题,一方面提高自己的理论知识,另外一方面也给自己去参加面试或面试他人提供点参考和帮助. 问题一: 为什么一个对象会被GC? 对象在进行 ...

  8. 一个java实习生两周八次的面试经历

    以前从来没有因为求职出去面试过,一直觉得面试很可怕,没想到最近两周我也成为了面霸,两周面试八次,我的找工作之路就这样开始了!大概两个星期之前,我看着自己在招聘网站上写好的简历连投出去的勇气都没有,战战 ...

  9. java开发webservice的几种方式(转载)

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...

随机推荐

  1. PHP变量的实现原理【转】

    PHP是一门弱语言,也就说PHP的一个变量可以保存任意类型的变量,PHP是用C语言实现的,而C语言是一个强类型的语言,每个变量都有固定的类型,不能随意改变变量的类型(虽然可以通过强制类型转换,可能会出 ...

  2. LeetCode难度和面试频率(转)

    转自:http://www.cnblogs.com/ywl925/p/3507945.html    ID Question   Diff  Freq  Data Structure  Algorit ...

  3. $.ajax()方法参数总结

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和d ...

  4. ASP.NET页面之间传值Application(5)

    Application对象的作用范围是整个全局,也就是说对所有用户都有效.它在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所 以可以在不同页面中对它进行存取.它和Session变量的区别 ...

  5. C#中多态

    我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态. 1: OverRide 实现多态 public class Animal { public virtual void ...

  6. [hdu 4734]数位dp例题

    通过这个题目更加深入了解到了数位dp在记忆化搜索的过程中就是实现了没有限制条件的n位数的状态复用. #include<bits/stdc++.h> using namespace std; ...

  7. 移动端浏览器touch事件的研究总结

    $("body").on("touchstart", function(e) {     e.preventDefault();     startX = e. ...

  8. ubuntu环境配置------增加右键菜单打开terminal

    直接安装一个软件包nautilus-open-terminal 终端输入:sudo apt-get install nautilus-open-terminal 重启系统!

  9. 数据结构之DFS与BFS

    深度搜索(DFS) and  广度搜索(BFS) 代码如下: #include "stdafx.h" #include<iostream> #include<st ...

  10. codefoeces 671 problem D

    D. Roads in Yusland standard output Mayor of Yusland just won the lottery and decided to spent money ...