public abstract class AttachmentPart extends Object
SOAPMessage对象。 
       SOAPMessage对象可能包含零个,一个或多个AttachmentPart对象。 
       每个AttachmentPart对象由两部分组成,即应用程序特定的内容和相关的MIME标头。 
       MIME标头由可用于标识和描述内容的名称/值对组成。 
        AttachmentPart对象必须符合某些标准。 
Content-Type AttachmentPart对象的内容中的数据类型,并且必须符合[RFC2045]。 以下是Content-Type标题的示例:   Content-Type:  application/xml  以下代码行(其中ap是一个AttachmentPart对象)设置前一示例中显示的标题。   ap.setMimeHeader("Content-Type", "application/xml");  AttachmentPart对象的内容部分没有限制。 内容可以是从简单的纯文本对象到复杂的XML文档或图像文件的任何内容。 
 使用方法SOAPMessage.createAttachmentPart创建一个AttachmentPart对象。 设置其MIME头后, AttachmentPart对象将添加到使用方法SOAPMessage.addAttachmentPart创建的消息。 
 下面的代码片段,其中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();  
      | Constructor and Description | 
|---|
| AttachmentPart() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | addMimeHeader(String name, String value)
              向此 
              AttachmentPart对象添加具有指定名称和值的MIME标头。 | 
| abstract void | clearContent()
              清除此 
              AttachmentPart对象的内容。 | 
| abstract Iterator | getAllMimeHeaders()
              检索这一切的头 
              AttachmentPart对象为在一个迭代MimeHeader对象。 | 
| abstract InputStream | getBase64Content()
              返回一个 
              InputStream,可以用来获取作为Base64编码字符数据的AttachmentPart的内容,此方法将base64编码附件的原始字节并返回。 | 
| abstract Object | getContent()
              获取此 
              AttachmentPart对象的内容作为Java对象。 | 
| String | getContentId()
              获取名称为“Content-ID”的MIME标头的值。 
             | 
| String | getContentLocation()
              获取名称为“Content-Location”的MIME标头的值。 
             | 
| String | getContentType()
              获取名称为“Content-Type”的MIME标头的值。 
             | 
| abstract DataHandler | getDataHandler()
              获取此 
              DataHandler对象的AttachmentPart对象。 | 
| abstract Iterator | getMatchingMimeHeaders(String[] names)
              检索与给定数组中的名称相匹配的所有 
              MimeHeader对象。 | 
| abstract String[] | getMimeHeader(String name)
              获取由给定的 
              String的头部的所有值。 | 
| abstract Iterator | getNonMatchingMimeHeaders(String[] names)
              检索名称与给定数组中的名称不匹配的所有 
              MimeHeader对象。 | 
| abstract InputStream | getRawContent()
              将该 
              AttachmentPart对象的内容作为InputStream获取,就像已经做出了getContent,并且没有DataContentHandlerAttachmentPart的content-typeAttachmentPart。 | 
| abstract byte[] | getRawContentBytes()
              将该 
              AttachmentPart对象的内容作为byte []数组获取,就像已对getContent进行了调用,并且没有DataContentHandlerAttachmentPart的content-typeAttachmentPart。 | 
| 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中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所 
              InputStreamcontent,并将Content-Type标头的值设置为contentType中contentType的值。 | 
| abstract void | setRawContentBytes(byte[] content, int offset, int len, String contentType)
              将此附件部分的内容设置为 
              byte[]数组content所包含的content,并将Content-Type标头的值设置为contentType中contentType的值。 | 
public abstract int getSize()
                     throws SOAPException 
          AttachmentPart对象中的字节数。 
          AttachmentPart对象的大小以字节为单位,如果大小不能确定,则为-1 
           SOAPException - 如果此附件的内容在尝试确定大小时有异常而损坏。 
           public abstract void clearContent()
AttachmentPart对象的内容。 
           MIME标题部分保持不变。 
          public abstract Object getContent() throws SOAPException
AttachmentPart对象的内容作为Java对象。 
           返回的Java对象的类型取决于(1)用于解释字节的DataContentHandler对象,(2) Content-Type给出的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对象的内容 
           SOAPException - 如果没有内容设置到此 
            AttachmentPart对象中,或者是否存在数据转换错误 
           public abstract InputStream getRawContent() throws SOAPException
AttachmentPart对象作为InputStream仿佛调用了到getContent ,没有DataContentHandler已经登记为content-type这一点AttachmentPart 。 
            请注意,从返回的InputStream读取将导致消息流中的数据。 调用后续API之前,调用方有责任重新设置InputStream。 如果需要原始附件内容的副本,则应使用getRawContentBytes() API。 
InputStream从其中由包含在所述原始数据 
            AttachmentPart可被访问。 
           SOAPException - 如果没有内容设置到此 
            AttachmentPart对象中,或者是否存在数据转换错误。 
           getRawContentBytes() 
           public abstract byte[] getRawContentBytes()
                                   throws SOAPException 
          AttachmentPart对象的内容作为byte []数组获取,就像已对 
           getContent进行了调用,并且没有 
           DataContentHandler AttachmentPart的 
           content-type 
           AttachmentPart 。 
          byte[]数组包含原始数据的 
            AttachmentPart 。 
           SOAPException - 如果没有内容设置到此 
            AttachmentPart对象中,或者是否存在数据转换错误。 
           public abstract InputStream getBase64Content() throws SOAPException
InputStream ,可以用来获取作为Base64编码字符数据的 
           AttachmentPart的内容,这个方法将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中contentType的值。 
           对getSize()的后续调用可能不是内容大小的精确度量。
content - 要添加到附件部分的原始数据 
           contentType - 要设置为 
            Content-Type头的值 
           SOAPException - 如果设置内容有错误 
           NullPointerException - 如果 
            content为空 
           public abstract void setRawContentBytes(byte[] content,
                                        int offset,
                                        int len,
                                        String contentType)
                                 throws SOAPException 
          byte[]阵列 
           content所包含的 
           content ,并将 
           Content-Type标头的值设置为contentType中 
           contentType的值。 
          content - 添加到附件部分的原始数据 
           contentType - 设置为 
            Content-Type标题的值 
           offset - 内容的字节数组中的偏移量 
           len - 形成内容的字节数 
           SOAPException - 如果内容设置错误或内容为空 
           public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
InputStream设置此附件部分的内容,并将Content-Type标头的值设置为contentType中contentType的值。此方法首先解码base64输入,并将生成的原始字节写入附件。 
           对getSize()的后续调用可能不是内容大小的精确度量。
content - 要添加到附件部分的base64编码数据 
           contentType - 设置为 
            Content-Type标题的值 
           SOAPException - 如果设置内容有错误 
           NullPointerException - 如果 
            content为空 
           public abstract DataHandler getDataHandler() throws SOAPException
DataHandler对象的 
           AttachmentPart对象。 
          DataHandler对象相关联的 
            AttachmentPart对象 
           SOAPException - 如果此 
            AttachmentPart对象中没有数据 
           public abstract void setDataHandler(DataHandler dataHandler)
DataHandler对象作为此数据处理程序AttachmentPart对象。 
           通常,在传入消息中,数据处理程序将自动设置。 
           当使用内容创建和填充消息时, setDataHandler方法可用于从各种数据源获取数据到消息中。 
          dataHandler - 要设置的 
            DataHandler对象 
           IllegalArgumentException - 如果指定的 
            DataHandler对象有问题 
           public String getContentId()
String给出“Content-ID”头或 
            null的值,如果没有 
           setContentId(java.lang.String) 
           public String getContentLocation()
String给出“内容位置”标题的值或 
            null如果没有 
           public String getContentType()
String给出了“Content-Type”头或 
            null的值,如果没有 
           public void setContentId(String contentId)
contentId - 一个 
            String给出“Content-ID”头的值 
           IllegalArgumentException - 如果指定的 
            contentId值有问题 
           getContentId() 
           public void setContentLocation(String contentLocation)
contentLocation - 一个 
            String给出了“内容位置”标题的值 
           IllegalArgumentException - 如果指定的内容位置有问题 
           public void setContentType(String contentType)
contentType - 一个 
            String给出了“Content-Type”头的值 
           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对象添加具有指定名称和值的MIME标头。 
           请注意,RFC822头文件只能包含US-ASCII字符。
name - 
            String给出要添加的标题的名称 
           value - 
            String给出要添加的标题的值 
           IllegalArgumentException - 如果指定的mime头名称或值有问题 
           public abstract Iterator getAllMimeHeaders()
AttachmentPart对象为在一个迭代 
           MimeHeader对象。 
          Iterator对象所有MIME头的这个 
            AttachmentPart对象 
           public abstract Iterator getMatchingMimeHeaders(String[] names)
MimeHeader对象。 
          names - 要返回的MIME标题的名称的 
            String数组 
           Iterator对象 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.