|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.xml.soap.AttachmentPart
public abstract class AttachmentPart
SOAPMessage
物件的一個附件。SOAPMessage
物件可以包含 0 個、1 個或多個 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 文檔或圖像檔案。
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
為 nullpublic 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
- 如果設置內容時發生錯誤,或者內容為 nullpublic abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
InputStream
設置此附件部分的內容,並將 Content-Type
頭的值設置為 contentType
中包含的值,此方法將首先對 base64 輸入串流進行解碼,然後將得到的原始位元組寫入附件。
後續調用 getSize() 可能無法準確度量內容的大小。
content
- 要添加到附件部分的 Base64 解碼資料contentType
- 要在 Content-Type
頭中設置的值
SOAPException
- 如果設置內容時發生錯誤
NullPointerException
- 如果 content
為 nullpublic 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 頭。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。