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 ,并且没有
DataContentHandler AttachmentPart的
content-type
AttachmentPart 。
|
abstract byte[] |
getRawContentBytes()
将该
AttachmentPart 对象的内容作为byte []数组获取,就像已对
getContent 进行了调用,并且没有
DataContentHandler AttachmentPart的
content-type
AttachmentPart 。
|
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所
InputStream
content ,并将
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
对象