【背景】
前一段时间做微信支付,接口都是调用微信那边嘛,调了微信支付,存了本地数据后,我还得调项目里的webservice,把订单状态写回到另一个库里面。
但是用http写GET,写POST我不会写;还有post数据的时候一会传json类型的,一会要传xml类型的。很懵逼。
所以我先看了下这个——
在Java项目中调用第三方接口的方式有:
①通过JDK网络类Java.net.HttpURLConnection;
②通过common封装好的HttpClient;
③通过Apache封装好的CloseableHttpClient;
④通过SpringBoot-RestTemplate;
我主要了解了下apache的httpcomponent,还有RestTemplate。感觉比较简单,并且这2种都挺好用的
然后我又开始了解webservice,遇到了很多坑......所以想把一些我的理解列下来
(我说的这些东西可能是错的,但肯定是有用的)
【1】java webservice都有什么写法,具体怎么写
主要有2种。
一种是基于soap的,生成后链接以?wsdl结尾,这种调用用的是post;(这种是jax-ws)
另一种是rest风格的,调用可以不只是post,还有get,delete,put这些。(这种是jax-rs)
具体的写法你搜索jax-ws,jax-rs就有了(基于springboot的写法会简单点)
jax-ws这种,要写服务端和客户端。(1)服务端用@service标注在方法的类上,还要把这个类“注册”到endpoint上。(2)客户端要通过发布的那个wsdl地址,生成代码-generate java code from wsdl,然后就可以调用了。
jax-rs这种,只用写服务端。写法跟上面那种差不多,代码写完后也是要注册下。客户端你用http方法请求就行
【2】webservice 跟我们写一个项目,通过路由方式去调用,有啥区别
我也不知道,感觉没区别
或者说严谨点。他们是共同点比较多。
(这个就不多说了,不懂。可能应用场景不完全重合)
【3】jax-ws,jax-rs哪种好
这2个都是接口规范,学java的webservice按这2个来,感觉会容易很多
以前的应用是jax-ws比较多,以后的应用估计会jax-rs比较多,因为后者是基于REST的,并且逻辑啊,还有代码实现上要更简单。(具体用哪个还得看项目需求了)
【4】web服务开放出去后,安全性怎么办
webservice是不管安全性的
也就是说,你想管理安全性,比如只能有权限的访问,只能某些ip访问,或者限制访问次数。这些是要另外实现的,不关webservice的事
【5】其它
C#也有soap和webservice,它们好像是2个东西。soap也是要写服务端,然后在客户端生成引用才能开始写代码。
这些年web API出来了,没用过,网上说是基于rest的。
个人感觉webservice还是比较重要,写个例子快速上手,然后在项目里用一用。应该可以增加自己的分量