Hutool Hutool
(opens new window)
🏡首页
📖指南
  • 核心(Hutool-core)
  • 配置文件(Hutool-setting)
  • 日志(Hutool-log)
  • 缓存(Hutool-cache)
  • JSON(Hutool-json)
  • 加密解密(Hutool-crypto)
  • DFA查找(Hutool-dfa)
  • 数据库(Hutool-db)
  • HTTP客户端(Hutool-http)
  • 定时任务(Hutool-cron)
  • 扩展(Hutool-extra)
  • 布隆过滤(Hutool-bloomFilter)
  • 切面(Hutool-aop)
  • 脚本(Hutool-script)
  • Office文档操作(Hutool-poi)
  • 系统调用(Hutool-system)
  • 图形验证码(Hutool-captcha)
  • 网络Socket(Hutool-socket)
  • JWT(Hutool-jwt)
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
  • 核心(Hutool-core)
  • 配置文件(Hutool-setting)
  • 日志(Hutool-log)
  • 缓存(Hutool-cache)
  • JSON(Hutool-json)
  • 加密解密(Hutool-crypto)
  • DFA查找(Hutool-dfa)
  • 数据库(Hutool-db)
  • HTTP客户端(Hutool-http)
  • 定时任务(Hutool-cron)
  • 扩展(Hutool-extra)
  • 布隆过滤(Hutool-bloomFilter)
  • 切面(Hutool-aop)
  • 脚本(Hutool-script)
  • Office文档操作(Hutool-poi)
  • 系统调用(Hutool-system)
  • 图形验证码(Hutool-captcha)
  • 网络Socket(Hutool-socket)
  • JWT(Hutool-jwt)
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(Hutool-core)

  • 配置文件(Hutool-setting)

  • 日志(Hutool-log)

  • 缓存(Hutool-cache)

  • JSON(Hutool-json)

  • 加密解密(Hutool-crypto)

  • DFA查找(Hutool-dfa)

  • 数据库(Hutool-db)

  • HTTP客户端(Hutool-http)

    • 概述
    • Http客户端工具类-HttpUtil
    • HTML工具类-HtmlUtil
    • Http响应-HttpResponse
    • Http请求-HttpRequest
    • UA工具类-UserAgentUtil
    • 常用Http状态码-HttpStatus
    • 案例1-爬取开源中国的开源资讯
    • 常见问题
    • Server

    • WebService

      • Soap客户端-SoapClient
        • 由来
        • 使用
        • 扩展
          • 查看生成的请求XML
          • 多参数或复杂参数
  • 定时任务(Hutool-cron)

  • 扩展(Hutool-extra)

  • 布隆过滤(Hutool-bloomFilter)

  • 切面(Hutool-aop)

  • 脚本(Hutool-script)

  • Office文档操作(Hutool-poi)

  • 系统调用(Hutool-system)

  • 图形验证码(Hutool-captcha)

  • 网络Socket(Hutool-socket)

  • JWT(Hutool-jwt)

  • 指南
  • HTTP客户端(Hutool-http)
  • WebService
Hutool
2023-03-28
目录

Soap客户端-SoapClient

特别赞助 by:

# 由来

在接口对接当中,WebService接口占有着很大份额,而我们为了使用这些接口,不得不引入类似Axis等库来实现接口请求。

现在有了Hutool,就可以在无任何依赖的情况下,实现简便的WebService请求。

# 使用

  1. 使用SoapUI (opens new window)解析WSDL地址,找到WebService方法和参数。

我们得到的XML模板为:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:getCountryCityByIp>
         <!--Optional:-->
         <web:theIpAddress>?</web:theIpAddress>
      </web:getCountryCityByIp>
   </soapenv:Body>
</soapenv:Envelope>
  1. 按照SoapUI中的相应内容构建SOAP请求。

我们知道:

  1. 方法名为:web:getCountryCityByIp
  2. 参数只有一个,为:web:theIpAddress
  3. 定义了一个命名空间,前缀为web,URI为http://WebXml.com.cn/

这样我们就能构建相应SOAP请求:

// 新建客户端
SoapClient client = SoapClient.create("http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx")
    // 设置要请求的方法,此接口方法前缀为web,传入对应的命名空间
    .setMethod("web:getCountryCityByIp", "http://WebXml.com.cn/")
    // 设置参数,此处自动添加方法的前缀:web
    .setParam("theIpAddress", "218.21.240.106");

    // 发送请求,参数true表示返回一个格式化后的XML内容
    // 返回内容为XML字符串,可以配合XmlUtil解析这个响应
    Console.log(client.send(true));

# 扩展

# 查看生成的请求XML

调用SoapClient对象的getMsgStr方法可以查看生成的XML,以检查是否与SoapUI生成的一致。

SoapClient client = ...;
Console.log(client.getMsgStr(true));

# 多参数或复杂参数

对于请求体是列表参数或多参数的情况,如:

<web:method>
  <arg0>
    <fd1>aaa</fd1>
    <fd2>bbb</fd2>
  </arg0>
</web:method>

这类请求可以借助addChildElement完成。

SoapClient client = SoapClient.create("https://hutool.cn/WebServices/test.asmx")
		.setMethod("web:method", "http://hutool.cn/")
		SOAPElement arg0 = client.getMethodEle().addChildElement("arg0");
		arg0.addChildElement("fdSource").setValue("?");
		arg0.addChildElement("fdTemplated").setValue("?");

详细的问题解答见:https://gitee.com/dromara/hutool/issues/I4QL1V

上次更新: 2025/05/06, 10:48:51
简易Http服务器-SimpleServer
概述

← 简易Http服务器-SimpleServer 概述→

Theme by Vdoing | Copyright © 2023-2025 Hutool | MulanPSL-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×