java.lang.Objectjavax.xml.soap.AttachmentPart
public abstract class AttachmentPart
      SOAPMessage 对象的一个附件。SOAPMessage 对象可以包含 0 个、1 个或多个 AttachmentPart 对象。每个 AttachmentPart 对象由两部分组成:特定于应用程序的内容和关联的 MIME 头。MIME 头由可用于标识和描述内容的名称/值对组成。 
 AttachmentPart 对象必须符合某些标准。 
Content-TypeAttachmentPart 对象内容中的数据类型,必须符合 [RFC2045]。以下是一个 Content-Type 头的示例: 
Content-Type:application/xml
        以下代码行(其中 ap 是一个 AttachmentPart 对象)设置前一示例中显示的头。 
ap.setMimeHeader("Content-Type", "application/xml");
        
 AttachmentPart 对象的内容部分没有任何限制。内容可以是简单的纯文本对象、复杂的 XML 文档或图像文件。 
 AttachmentPart 对象是使用方法 SOAPMessage.createAttachmentPart 创建的。设置 MIME 头之后,使用方法 SOAPMessage.addAttachmentPart 将 AttachmentPart 对象添加到创建它的消息中。 
 以下代码片段(其中 m 是一个 SOAPMessage 对象,contentStringl 是一个 String)创建 AttachmentPart 的实例,使用一些内容和头信息设置 AttachmentPart 对象,并将 AttachmentPart 对象添加到 SOAPMessage 对象。 
AttachmentPart ap1 = m.createAttachmentPart(); ap1.setContent(contentString1, "text/plain"); m.addAttachmentPart(ap1);
 以下代码片段创建第二个 AttachmentPart 实例并将其添加到同一消息中。jpegData 是表示 jpeg 文件的一个二进制字节缓冲区。 
AttachmentPart ap2 = m.createAttachmentPart(); byte[] jpegData = ...; ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg"); m.addAttachmentPart(ap2);
 getContent 方法检索 AttachmentPart 对象的内容和头。根据存在 DataContentHandler 对象的不同,返回的 Object 可能是与 MIME 类型相对应的类型化的 Java 对象,也可能是以字节形式包含内容的 InputStream 对象。 
String content1 = ap1.getContent(); java.io.InputStream content2 = ap2.getContent();方法
clearContent 从 
  AttachmentPart 对象中移除所有内容,但不影响其头信息。 
  ap1.clearContent();
| 构造方法摘要 | |
|---|---|
AttachmentPart()  |  
    |
| 方法摘要 | |
|---|---|
 abstract  void |  
     addMimeHeader(String name, String value) 将带有指定名称和值的 MIME 头添加到此 AttachmentPart 对象。 |  
    
 abstract  void |  
     clearContent() 清除此 AttachmentPart 对象的内容。 |  
    
 abstract  Iterator |  
     getAllMimeHeaders() 以 MimeHeader 对象上的迭代器形式,检索此 AttachmentPart 对象的所有头。 |  
    
 abstract  InputStream |  
     getBase64Content() 以 Base64 编码字符数据的形式返回可用于获取 AttachmentPart 内容的 InputStream,此方法将对附件的原始字节进行 Base64 编码,然后返回该内容。 |  
    
 abstract  Object |  
     getContent() 以 Java 对象的形式获取此 AttachmentPart 对象的内容。 |  
    
  String |  
     getContentId() 获取名为 "Content-ID" 的 MIME 头的值。  |  
    
  String |  
     getContentLocation() 获取名为 "Content-Location" 的 MIME 头的值。  |  
    
  String |  
     getContentType() 获取名为 "Content-Type" 的 MIME 头的值。  |  
    
 abstract  DataHandler |  
     getDataHandler() 获取针对此 AttachmentPart 对象的 DataHandler 对象。 |  
    
 abstract  Iterator |  
     getMatchingMimeHeaders(String[] names) 检索匹配给定数组中名称的所有 MimeHeader 对象。 |  
    
 abstract  String[] |  
     getMimeHeader(String name) 获取给定 String 所标识的头的所有值。 |  
    
 abstract  Iterator |  
     getNonMatchingMimeHeaders(String[] names) 检索所有名称不匹配给定数组中任一名称的 MimeHeader 对象。 |  
    
 abstract  InputStream |  
     getRawContent() 以 InputStream 的形式获取此 AttachmentPart 对象的内容,等效于调用了 getContent 但没有为此 AttachmentPart 的 content-type 注册 DataContentHandler。 |  
    
 abstract  byte[] |  
     getRawContentBytes() 以 byte[] 数组形式获取此 AttachmentPart 对象的内容,等效于调用了 getContent 但没有为此 AttachmentPart 的 content-type 注册 DataContentHandler。 |  
    
 abstract  int |  
     getSize() 返回此 AttachmentPart 对象中的字节数。 |  
    
 abstract  void |  
     removeAllMimeHeaders() 移除所有 MIME 头条目。  |  
    
 abstract  void |  
     removeMimeHeader(String header) 移除匹配给定名称的所有 MIME 头。  |  
    
 abstract  void |  
     setBase64Content(InputStream content, String contentType) 根据 Base64 源 InputStream 设置此附件部分的内容,并将 Content-Type 头的值设置为 contentType 中包含的值,此方法将首先对 base64 输入流进行解码,然后将得到的原始字节写入附件。 |  
    
 abstract  void |  
     setContent(Object object, String contentType) 将此附件部分的内容设置为给定 Object 的内容,并将 Content-Type 头的值设置为给定类型。 |  
    
  void |  
     setContentId(String contentId) 使用给定值设置名为 "Content-ID" 的 MIME 头。  |  
    
  void |  
     setContentLocation(String contentLocation) 使用给定值设置名为 "Content-Location" 的 MIME 头。  |  
    
  void |  
     setContentType(String contentType) 使用给定值设置名为 "Content-Type" 的 MIME 头。  |  
    
 abstract  void |  
     setDataHandler(DataHandler dataHandler) 将给定的 DataHandler 对象设置为此 AttachmentPart 对象的数据处理程序。 |  
    
 abstract  void |  
     setMimeHeader(String name, String value) 将匹配给定名称的第一个头条目的值更改为给定值,如果现有的头都不匹配,则添加一个新的头。  |  
    
 abstract  void |  
     setRawContent(InputStream content, String contentType) 将此附件部分的内容设置为 InputStream content 所包含的内容,并将 Content-Type 头的值设置为 contentType 中包含的值。 |  
    
 abstract  void |  
     setRawContentBytes(byte[] content, int offset, int len, String contentType) 将此附件部分的内容设置为 byte[] 数组 content 所包含的内容,并将 Content-Type 头的值设置为 contentType 中包含的值。 |  
    
| 从类 java.lang.Object 继承的方法 | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |  
    
| 构造方法详细信息 | 
|---|
public AttachmentPart()
| 方法详细信息 | 
|---|
public abstract int getSize()
                     throws SOAPException 
  AttachmentPart 对象中的字节数。 
    
AttachmentPart 对象的大小,以字节为单位;如果无法确定其大小,则返回 -1 
     SOAPException - 如果此附件的内容已损坏,或者尝试确定其大小时引发异常。
     public abstract void clearContent()
AttachmentPart 对象的内容。MIME 头部分保持不变。 
    
public abstract Object getContent() throws SOAPException
AttachmentPart 对象的内容。返回的 Java 对象的类型取决于:(1) 用来解释字节的 
    DataContentHandler 对象;(2) 头中给定的 
    Content-Type。 
     对于 MIME 内容类型 "text/plain"、"text/html" 和 "text/xml",DataContentHandler 对象执行与对应于 MIME 类型的 Java 类型之间的转换。对于其他 MIME 类型,DataContentHandler 对象可以返回以原始字节形式包含内容的 InputStream 对象。 
 符合 SAAJ 的实现至少必须返回一个 java.lang.String 对象(与 Content-Type 值为 text/plain 的任何内容流相对应)、一个 javax.xml.transform.stream.StreamSource 对象(与 Content-Type 值为 text/xml 的内容流相对应)、以及一个 java.awt.Image 对象(与 Content-Type 值为 image/gif 或 image/jpeg 的内容流相对应)。对于已安装的 DataContentHandler 对象不理解的内容类型,DataContentHandler 对象要返回带有原始字节的 java.io.InputStream 对象。 
AttachmentPart 对象内容的 Java 对象 
     SOAPException - 如果此 
      AttachmentPart 对象中没有设置任何内容,或者出现数据转换错误
     public abstract InputStream getRawContent() throws SOAPException
AttachmentPart 对象的内容,等效于调用了 
    getContent 但没有为此 
    AttachmentPart 的 
    content-type 注册 
    DataContentHandler。 
     注意,读取返回的 InputStream 可能导致消耗流中的数据。调用者负责在调用 Subsequent API 之前适当地重置 InputStream。如果需要附件原始内容的一个副本,则应改用 getRawContentBytes() API。 
InputStream 对象,从中可以访问 
      AttachmentPart 包含的原始数据。 
     SOAPException - 如果此 
      AttachmentPart 对象中没有设置任何内容,或者出现数据转换错误。
     getRawContentBytes()
     
public abstract byte[] getRawContentBytes()
                                   throws SOAPException 
  AttachmentPart 对象的内容,等效于调用了 
    getContent 但没有为此 
    AttachmentPart 的 
    content-type 注册 
    DataContentHandler。 
    
AttachmentPart 原始数据的 
      byte[] 数组。 
     SOAPException - 如果此 
      AttachmentPart 对象中没有设置任何内容,或者出现数据转换错误。
     public abstract InputStream getBase64Content() throws SOAPException
AttachmentPart 内容的 
    InputStream,此方法将对附件的原始字节进行 Base64 编码,然后返回该内容。 
    
InputStream 对象,从中可以读取 Base64 编码的 
      AttachmentPart。 
     SOAPException - 如果此 
      AttachmentPart 对象中没有设置任何内容,或者出现数据转换错误。
     public abstract void setContent(Object object, String contentType)
Object 的内容,并将 
    Content-Type 头的值设置为给定类型。
    Object 的类型应该对应于指定给 
    Content-Type 的值。这取决于所使用的特定 
    DataContentHandler 对象集合。 
    
object - 组成此附件部分内容的 Java 对象
     contentType - 指定内容类型的 MIME 字符串 
     IllegalArgumentException - 如果 contentType 不匹配内容对象的类型,或者没有针对此内容对象的 
      DataContentHandler 对象
     getContent()
     public abstract void setRawContent(InputStream content, String contentType) throws SOAPException
InputStream 
    content 所包含的内容,并将 
    Content-Type 头的值设置为 
    contentType 中包含的值。 
    后续调用 getSize() 可能无法准确度量内容的大小。
content - 要添加到附件部分的原始数据
     contentType - 将在 
      Content-Type 头中设置的值 
     SOAPException - 如果设置内容时发生错误 
     NullPointerException - 如果 
      content 为 null
     
public abstract void setRawContentBytes(byte[] content,
                                        int offset,
                                        int len,
                                        String contentType)
                                 throws SOAPException 
  byte[] 数组 
    content 所包含的内容,并将 
    Content-Type 头的值设置为 
    contentType 中包含的值。 
    
content - 要添加到附件部分的原始数据
     contentType - 要在 
      Content-Type 头中设置的值
     offset - 内容字节数组中的偏移量
     len - 组成内容的字节数 
     SOAPException - 如果设置内容时发生错误,或者内容为 null
     public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
InputStream 设置此附件部分的内容,并将 
    Content-Type 头的值设置为 
    contentType 中包含的值,此方法将首先对 base64 输入流进行解码,然后将得到的原始字节写入附件。 
    后续调用 getSize() 可能无法准确度量内容的大小。
content - 要添加到附件部分的 Base64 解码数据
     contentType - 要在 
      Content-Type 头中设置的值 
     SOAPException - 如果设置内容时发生错误 
     NullPointerException - 如果 
      content 为 null
     public abstract DataHandler getDataHandler() throws SOAPException
AttachmentPart 对象的 
    DataHandler 对象。 
    
AttachmentPart 对象关联的 
      DataHandler 对象 
     SOAPException - 如果此 
      AttachmentPart 对象中没有数据
     public abstract void setDataHandler(DataHandler dataHandler)
DataHandler 对象设置为此 
    AttachmentPart 对象的数据处理程序。通常,对于传入的消息,数据处理程序是自动设置的。创建消息并填充内容之后,可以使用 
    setDataHandler 方法从各种数据源获取数据并转入该消息中。 
    
dataHandler - 要设置的 
      DataHandler 对象 
     IllegalArgumentException - 如果指定的 
      DataHandler 对象存在问题
     public String getContentId()
String;如果不存在此类字符串,则返回 
      null
     setContentId(java.lang.String)
     public String getContentLocation()
String;如果不存在此类字符串,则返回 
      null
     public String getContentType()
String;如果不存在此类字符串,则返回 
      null
     public void setContentId(String contentId)
contentId - 给出 "Content-ID" 头值的 
      String 
     IllegalArgumentException - 如果指定的 
      contentId 值存在问题
     getContentId()
     public void setContentLocation(String contentLocation)
contentLocation - 给出 "Content-Location" 头值的 
      String 
     IllegalArgumentException - 如果指定的内容位置存在问题
     public void setContentType(String contentType)
contentType - 给出 "Content-Type" 头值的 
      String 
     IllegalArgumentException - 如果指定的内容类型存在问题
     public abstract void removeMimeHeader(String header)
header - 要移除的 MIME 头的字符串名
     public abstract void removeAllMimeHeaders()
public abstract String[] getMimeHeader(String name)
String 所标识的头的所有值。 
    
name - 头的名称;示例:"Content-Type" 
     String 数组
     setMimeHeader(java.lang.String, java.lang.String)
     public abstract void setMimeHeader(String name, String value)
注意,RFC822 头只能包含 US-ASCII 字符。
name - 一个 
      String,用于提供要搜索的头的名称
     value - 一个 
      String,用于提供将用来设置名称匹配给定名称的头的值 
     IllegalArgumentException - 如果指定的 MIME 头名称或值存在问题
     public abstract void addMimeHeader(String name, String value)
AttachmentPart 对象。 
    注意,RFC822 头只能包含 US-ASCII 字符。
name - 一个 
      String,用于提供要添加的头的名称
     value - 一个 
      String,用于提供要添加的头的值 
     IllegalArgumentException - 如果指定的 MIME 头名称或值存在问题
     public abstract Iterator getAllMimeHeaders()
MimeHeader 对象上的迭代器形式,检索此 
    AttachmentPart 对象的所有头。 
    
AttachmentPart 对象所有 MIME 头的 
      Iterator 对象
     public abstract Iterator getMatchingMimeHeaders(String[] names)
MimeHeader 对象。 
    
names - 一个 
      String 数组,带有要返回的 MIME 头的名称 
     Iterator 对象的形式)
     public abstract Iterator getNonMatchingMimeHeaders(String[] names)
MimeHeader 对象。 
    
names - 一个 
      String 数组,带有无需返回的 MIME 头的名称 
     AttachmentPart 对象中的所有 MIME 头,但匹配给定数组中任一名称的 MIME 头除外。以 
      Iterator 对象的形式返回不匹配的 MIME 头。