Class SoapBuilder

java.lang.Object
org.miaixz.bus.http.plugin.soap.SoapBuilder

public class SoapBuilder extends Object
SOAP 支持 此对象用于构建一个SOAP消息,并通过HTTP接口发出消息内容。 SOAP消息本质上是一个XML文本,可以通过调用getString(boolean) 方法获取消息体
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • SoapBuilder

      public SoapBuilder(String url)
      构造,默认使用soap1.2版本协议
      Parameters:
      url - WS的URL地址
    • SoapBuilder

      public SoapBuilder(String url, org.miaixz.bus.core.net.Protocol protocol)
      构造
      Parameters:
      url - WS的URL地址
      protocol - 协议版本,见Protocol
    • SoapBuilder

      public SoapBuilder(String url, org.miaixz.bus.core.net.Protocol protocol, String namespaceURI)
      构造
      Parameters:
      url - WS的URL地址
      protocol - 协议版本,见Protocol
      namespaceURI - 方法上的命名空间URI
  • Method Details

    • of

      public static SoapBuilder of(String url)
      创建SOAP客户端,默认使用soap1.2版本协议
      Parameters:
      url - WS的URL地址
      Returns:
      this
    • of

      public static SoapBuilder of(String url, org.miaixz.bus.core.net.Protocol protocol)
      创建SOAP客户端
      Parameters:
      url - WS的URL地址
      protocol - 协议,见Protocol
      Returns:
      this
    • of

      public static SoapBuilder of(String url, org.miaixz.bus.core.net.Protocol protocol, String namespaceURI)
      创建SOAP客户端
      Parameters:
      url - WS的URL地址
      protocol - 协议,见Protocol
      namespaceURI - 方法上的命名空间URI
      Returns:
      this
    • init

      public SoapBuilder init(org.miaixz.bus.core.net.Protocol protocol)
      初始化
      Parameters:
      protocol - 协议版本枚举,见Protocol
      Returns:
      this
    • reset

      public SoapBuilder reset()
      重置SOAP客户端,用于客户端复用 重置后需调用serMethod方法重新指定请求方法,并调用setParam方法重新定义参数
      Returns:
      this
    • charset

      public SoapBuilder charset(Charset charset)
      设置编码
      Parameters:
      charset - 编码
      Returns:
      this
    • setUrl

      public SoapBuilder setUrl(String url)
      设置Webservice请求地址
      Parameters:
      url - Webservice请求地址
      Returns:
      this
    • header

      public SoapBuilder header(String name, String value, boolean isOverride)
      设置一个header 如果覆盖模式,则替换之前的值,否则加入到值列表中
      Parameters:
      name - Header名
      value - Header值
      isOverride - 是否覆盖已有值
      Returns:
      this
    • headers

      public Map<String,String> headers()
      获取headers
      Returns:
      Header Map
    • clearHeaders

      public SoapBuilder clearHeaders()
      清除所有头信息,包括全局头信息
      Returns:
      this
    • addSOAPHeader

      public jakarta.xml.soap.SOAPHeaderElement addSOAPHeader(QName name, String actorURI, String roleUri, Boolean mustUnderstand, Boolean relay)
      增加SOAP头信息,方法返回SOAPHeaderElement可以设置具体属性和子节点
      Parameters:
      name - 头信息标签名
      actorURI - 中间的消息接收者
      roleUri - Role的URI
      mustUnderstand - 标题项对于要对其进行处理的接收者来说是强制的还是可选的
      relay - relay属性
      Returns:
      SOAPHeaderElement
    • addSOAPHeader

      public jakarta.xml.soap.SOAPHeaderElement addSOAPHeader(String localName)
      增加SOAP头信息,方法返回SOAPHeaderElement可以设置具体属性和子节点
      Parameters:
      localName - 头节点名称
      Returns:
      SOAPHeaderElement
    • addSOAPHeader

      public jakarta.xml.soap.SOAPHeaderElement addSOAPHeader(String localName, String value)
      增加SOAP头信息,方法返回SOAPHeaderElement可以设置具体属性和子节点
      Parameters:
      localName - 头节点名称
      value - 头节点的值
      Returns:
      SOAPHeaderElement
    • addSOAPHeader

      public jakarta.xml.soap.SOAPHeaderElement addSOAPHeader(QName name)
      增加SOAP头信息,方法返回SOAPHeaderElement可以设置具体属性和子节点
      Parameters:
      name - 头节点名称
      Returns:
      SOAPHeaderElement
    • setMethod

      public SoapBuilder setMethod(jakarta.xml.soap.Name name, Map<String,Object> params, boolean useMethodPrefix)
      设置请求方法
      Parameters:
      name - 方法名及其命名空间
      params - 参数
      useMethodPrefix - 是否使用方法的命名空间前缀
      Returns:
      this
    • setMethod

      public SoapBuilder setMethod(QName name, Map<String,Object> params, boolean useMethodPrefix)
      设置请求方法
      Parameters:
      name - 方法名及其命名空间
      params - 参数
      useMethodPrefix - 是否使用方法的命名空间前缀
      Returns:
      this
    • setMethod

      public SoapBuilder setMethod(String methodName)
      设置请求方法 方法名自动识别前缀,前缀和方法名使用“:”分隔 当识别到前缀后,自动添加xmlns属性,关联到默认的namespaceURI
      Parameters:
      methodName - 方法名
      Returns:
      this
    • setMethod

      public SoapBuilder setMethod(String methodName, String namespaceURI)
      设置请求方法 方法名自动识别前缀,前缀和方法名使用“:”分隔 当识别到前缀后,自动添加xmlns属性,关联到传入的namespaceURI
      Parameters:
      methodName - 方法名(可有前缀也可无)
      namespaceURI - 命名空间URI
      Returns:
      this
    • setMethod

      public SoapBuilder setMethod(QName name)
      设置请求方法
      Parameters:
      name - 方法名及其命名空间
      Returns:
      this
    • setParam

      public SoapBuilder setParam(String name, Object value)
      设置方法参数,使用方法的前缀
      Parameters:
      name - 参数名
      value - 参数值,可以是字符串或Map或SOAPElement
      Returns:
      this
    • setParam

      public SoapBuilder setParam(String name, Object value, boolean useMethodPrefix)
      设置方法参数
      Parameters:
      name - 参数名
      value - 参数值,可以是字符串或Map或SOAPElement
      useMethodPrefix - 是否使用方法的命名空间前缀
      Returns:
      this
    • setParams

      public SoapBuilder setParams(Map<String,Object> params)
      批量设置参数,使用方法的前缀
      Parameters:
      params - 参数列表
      Returns:
      this
    • setParams

      public SoapBuilder setParams(Map<String,Object> params, boolean useMethodPrefix)
      批量设置参数
      Parameters:
      params - 参数列表
      useMethodPrefix - 是否使用方法的命名空间前缀
      Returns:
      this
    • getMethodEle

      public jakarta.xml.soap.SOAPBodyElement getMethodEle()
      获取方法节点 用于创建子节点等操作
      Returns:
      SOAPBodyElement
    • getMessage

      public jakarta.xml.soap.SOAPMessage getMessage()
      获取SOAP消息对象 SOAPMessage
      Returns:
      SOAPMessage
    • getString

      public String getString(boolean pretty)
      获取SOAP请求消息
      Parameters:
      pretty - 是否格式化
      Returns:
      消息字符串
    • write

      public SoapBuilder write(OutputStream out)
      将SOAP消息的XML内容输出到流
      Parameters:
      out - 输出流
      Returns:
      this
    • sendForMessage

      public jakarta.xml.soap.SOAPMessage sendForMessage()
      执行Webservice请求,即发送SOAP内容
      Returns:
      返回结果
    • send

      public String send()
      执行Webservice请求,即发送SOAP内容
      Returns:
      返回结果
    • send

      public String send(boolean pretty)
      执行Webservice请求,即发送SOAP内容
      Parameters:
      pretty - 是否格式化
      Returns:
      返回结果
    • sendForResponse

      public Response sendForResponse()
      发送请求,获取异步响应
      Returns:
      响应对象