返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 调用 WebService 服务的 3 种方式
  • 314
分享到

Java 调用 WebService 服务的 3 种方式

webservicejavaspringboot 2023-08-18 06:08:07 314人浏览 安东尼
摘要

虽然 WEBService 这个框架已经过时,但是有些公司还在使用,在调用他们的服务的时候就不得不面对各种问题,本篇文章总结了最近我调用他司 WebService 的心路历程。3 种方式可以分别尝试,哪种能通用哪个。 soapui 下载地址

虽然 WEBService 这个框架已经过时,但是有些公司还在使用,在调用他们的服务的时候就不得不面对各种问题,本篇文章总结了最近我调用他司 WebService 的心路历程。3 种方式可以分别尝试,哪种能通用哪个。

soapui 下载地址:百度网盘夸克网盘

1. HttpClient

依赖:

                            org.projectlombok            lombok            true                                    org.apache.httpcomponents.client5            httpclient5            5.1.3        

代码:

import lombok.extern.slf4j.Slf4j;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.HttpEntity;@Slf4jpublic class HttpClientUtil {        public static String callServiceHC(String wsUrl, String JSONStr) {        String xml = createSoapContent(jsonStr);        String returnDatabase = doPostSoap(wsUrl, xml, "");        log.info("returnDatabase===>{}", returnDatabase);        return returnDatabase;    }            public static String createSoapContent(String jsonStr) {        log.info("开始拼接请求报文");        //开始拼接请求报文        StringBuilder stringBuilder = new StringBuilder();        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("getInfo\n");        stringBuilder.append("xml\n");        stringBuilder.append("测试\n");        stringBuilder.append("Acsaop21Lxw5KAoQu6SLs624bhGjwNL0DzxsQ9a7B/HbqNsPPcA==\n");        stringBuilder.append("\n");        stringBuilder.append("]]>\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("");        log.info("拼接后的参数"+stringBuilder.toString());        return stringBuilder.toString();    }        public static String doPostSoap(String url, String soap, String SOAPAction) {        //请求体        String retStr = "";        // 创建HttpClientBuilder        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();        // HttpClient        CloseableHttpClient closeableHttpClient = httpClientBuilder.build();        HttpPost httpPost = new HttpPost(url);        try {            httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");            httpPost.setHeader("SOAPAction", SOAPAction);            StringEntity data = new StringEntity(soap,                    Charset.forName("UTF-8"));            httpPost.setEntity(data);            CloseableHttpResponse response = closeableHttpClient                    .execute(httpPost);            HttpEntity httpEntity = response.getEntity();            if (httpEntity != null) {                // 打印响应内容                retStr = EntityUtils.toString(httpEntity, "UTF-8");            }            // 释放资源            closeableHttpClient.close();        } catch (Exception e) {            e.printStackTrace();        }        return retStr;    }}

注意:拼接 xml 字符串的时候要根据实际的 WebService 地址拼接,可在 soapui 中导入 wsurl 获取到入参,如下:

把这些参数全部拼接进去:

2. Http post

依赖:

                            org.projectlombok            lombok            true                                    org.jodd            jodd-http            6.3.0        

代码:

import lombok.extern.slf4j.Slf4j;import jodd.http.*;public class HttpPostUtil {        public static String callServiceHP(String wsUrl, String jsonStr) {        String xml = createSoapContent(jsonStr);        String uploadFeeDetailJsonStr = postWs(wsUrl, xml);        return uploadFeeDetailJsonStr;    }    public static String createSoapContent(String jsonStr) {        log.info("开始拼接请求报文");        //开始拼接请求报文        StringBuilder stringBuilder = new StringBuilder();        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("getInfo\n");        stringBuilder.append("xml\n");        stringBuilder.append("测试\n");        stringBuilder.append("AcsaoP21Lxw5KAoQu6SLs624bhGjwNL0DzxsQ9a7B/HbqNsPPcA==\n");        stringBuilder.append("\n");        stringBuilder.append("]]>\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("\n");        stringBuilder.append("");        log.info("拼接后的参数"+stringBuilder.toString());        return stringBuilder.toString();    }            public static String postWs(String url, String jsonStr) {        HttpResponse resp = HttpRequest.post(url).connectionTimeout(60000).timeout(60000)                .contentType("application/xml", StandardCharsets.UTF_8.toString())                .header("SOAPAction","")                .bodyText(jsonStr, "application/xml", "utf-8")                .charset(StandardCharsets.UTF_8.toString()).trustAllCerts(true)                .send();        resp.charset(StandardCharsets.UTF_8.toString());        return resp.bodyText();    }}

3. cxf

因为我用 cxf 调不通,所以就在这里就直接奉上其他博主的调用案例:
https://blog.csdn.net/qq_20161461/article/details/116237450

来源地址:https://blog.csdn.net/m0_54355172/article/details/130348073

--结束END--

本文标题: Java 调用 WebService 服务的 3 种方式

本文链接: https://lsjlt.com/news/373663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java 调用 WebService 服务的 3 种方式
    虽然 WebService 这个框架已经过时,但是有些公司还在使用,在调用他们的服务的时候就不得不面对各种问题,本篇文章总结了最近我调用他司 WebService 的心路历程。3 种方式可以分别尝试,哪种能通用哪个。 soapui 下载地址...
    99+
    2023-08-18
    webservice java springboot
  • java调用WebService服务的四种方法总结
    目录一、前言二、简介  三、具体解析第一种方式,首先得下载axis2的jar包,Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService...
    99+
    2024-04-02
  • Java调用CXF WebService接口的两种方式实例
    方式一:使用CXF提供的工具生成客户端代码。1. 在项目中添加CXF的依赖。2. 使用CXF提供的命令行工具生成客户端代码,命令如下...
    99+
    2023-09-16
    java
  • Java webservice的POST和GET请求调用方式
    目录webservice的POST和GET请求调用POST请求1.发送请求2.POST请求体3.测试GET请求通过webService调第三方提供的接口post与getPOSTGET...
    99+
    2024-04-02
  • SpringBoot调用第三方WebService接口的两种实现方式
    WebService简介 WebService接口的发布通常一般都是使用WSDL(web service descriptive language)文件的样式来发布的,该文档包含了请求的参数信息,返回...
    99+
    2023-09-12
    spring boot java 后端
  • java对接webservice接口的四种方式
    这两天一直在做外系统对接,对方的接口是webservice的形式,调用起来有些蛋疼,于是在这里记录一下我尝试过的调用WebService的三种方式。 方式一:以HttpURLConnection的方式调用 String url ="http...
    99+
    2023-10-21
    java python 开发语言
  • C# 调用WebService的方式汇总
    C# 调用WebService的方式汇总 方式一:根据提供的webservice地址,用VS自带工具生成cs文件,添加到项目中使用即可。方式二:根据webservice地址,动态在项目中生成代...
    99+
    2023-09-07
    c# 服务器
  • webservice调用的方式有哪些
    有以下几种常见的方式可以调用webservice: SOAP(Simple Object Access Protocol):基于...
    99+
    2024-02-29
    webservice
  • webservice接口调用方式有哪些
    WebService接口调用方式有以下几种:1. SOAP调用方式:使用Simple Object Access Protocol ...
    99+
    2023-09-21
    webservice
  • java方法调用的方式有哪几种
    在Java中,方法调用的方式主要有以下几种: 直接调用:直接在代码中使用方法名和参数调用方法。 通过对象调用:通过对象名调用对象的...
    99+
    2024-03-11
    java
  • java调用webservice接口的方法有哪些
    Java调用WebService接口的方法主要有以下几种:1. 使用JAX-WS(Java API for XML Web Serv...
    99+
    2023-08-15
    java webservice
  • Java调用python代码的五种方式
    你还在纠结怎么样在Java中调用python吗?我们在实际工程项目问题中,经常会碰到不同语言代码之间互调的问题,比如此处的Java调用python(常见Java调用python写的处理模型来完成数据处...
    99+
    2023-09-05
    java python Java调用python
  • Java编写日历表的3种方式
    大家好,今天我和大家分享一下用Java编写日历表,我用了3种方式实现这一功能的。 首先我们来看看一个日历表有什么特征。在这里我就把我电脑上的日历表截下来分析一下 我们从上向下看:这...
    99+
    2024-04-02
  • java连接zookeeper的3种方式小结
    目录java连接zookeeper3种方式1、使用zookeeper原始api2、使用ZkClient客户端连接,这种连接比较简单3、使用curator连接Java集成zookeep...
    99+
    2024-04-02
  • java实现简单的webservice方式
    要实现简单的webservice方式,可以使用Java中的JAX-WS(Java API for XML Web Services)...
    99+
    2023-08-15
    Java
  • 说说Java异步调用的几种方式
    目录一、通过创建新线程二、通过线程池三、通过@Async注解四、通过CompletableFuture日常开发中,会经常遇到说,前台调服务,然后触发一个比较耗时的异步服务,且不用等异...
    99+
    2024-04-02
  • C#调用WebService的方法介绍
    一、前言 在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。首先我们创...
    99+
    2024-04-02
  • 3、vagrant的3种网络连接方式
    1. 简介vagrant提供了3种网络连接方式,分别是forwarded ports,host-only networking和bridged networking2. forwarded portsconfig.vm.network "f...
    99+
    2023-01-31
    方式 网络 vagrant
  • c3p0的3种配置方式
    c3p0的配置方式分为三种,分别是1.通过setters方法一个个地设置各个配置项2.类路径下提供一个c3p0.properties文件3.类路径下提供一个c3p0-config.xml文件1.通过sett...
    99+
    2024-04-02
  • SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)
    目录1.代码方式调用1.1创建服务提供者:Provider1.2创建服务调用者:Consumer2.注解方式调用注解实现原理分析总结在 Nacos 中,服务调用主要是通过 RestT...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作