springboot使用RestTemplate请求webservice接口

883 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

相信开发小伙伴都在日常工作中会调到webservice接口吧,接下来的接受是关于springboot使用RestTemplate请求webservice接口场景。 一.适用场景:

1.感觉使用webservice客户端调用接口很麻烦,不想新写一大堆请求webservice接口的代码。

2.代码中已经使用了RestTemplate调取其他接口,想复用相关方法,不想弄乱代码。

3.项目中用了nuts进行了地址转换,得到**http://XXXXX:8888/XXXXX:9999/webservice.asmx**格式的地址,而Java并不能对这种结构的webservice地址提供支持,但是restTemplate却可以对这种地址进行支持的情况。

二.开发准备:

soapUI、postman

三.正篇

1.先用soapUI请求相应地址,调通。
2.soapUI调通后,切换到Raw选项卡,将SOAPActionContent-Type、还有完整请求参数记录下来。

image.png

3.在postman里,自定义headers,将记录下来的SOAPActionContent-Type填进去,切换到Body->raw,右侧选择xml,然后将soapUI的请求参数完整的粘贴到这里,进行请求就行(这一步是最重要的,post方法调取webservice接口能不能成功,就看这两个定义头设置的对不对)。

image.png

image.png 4.一般到这里没有问题的话,就能够请求成功了,然后按照postman的请求头和请求参数,转换成对应java代码即可。 重点注意重点注意重点注意重点注意重点注意重点注意重点注意重点注意5.最后再次强调,post方法调取webservice的关键就在与SOAPAction和Content-Type,如果调不通,大概率是这两个值未设置正确。 这个只是代表我个人的一些解决的方法,有什么不同的方法欢迎讨论哦!