Class Part
- java.lang.Object
-
- org.apache.commons.httpclient.methods.multipart.Part
-
- Direct Known Subclasses:
PartBase
public abstract class Part extends Object
Abstract class for one Part of a multipart post object.- Since:
- 2.0
- Author:
- Matthew Albright, Jeff Dever, Adrian Sutton, Mike Bowler, Oleg Kalnichevski
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringBOUNDARYDeprecated.protected static byte[]BOUNDARY_BYTESDeprecated.protected static StringCHARSETContent charsetprotected static byte[]CHARSET_BYTESContent charset as a byte arrayprotected static StringCONTENT_DISPOSITIONContent dispostion charactersprotected static byte[]CONTENT_DISPOSITION_BYTESContent dispostion as a byte arrayprotected static StringCONTENT_TRANSFER_ENCODINGContent type headerprotected static byte[]CONTENT_TRANSFER_ENCODING_BYTESContent type header as a byte arrayprotected static StringCONTENT_TYPEContent type headerprotected static byte[]CONTENT_TYPE_BYTESContent type header as a byte arrayprotected static StringCRLFCarriage return/linefeedprotected static byte[]CRLF_BYTESCarriage return/linefeed as a byte arrayprotected static StringEXTRAExtra charactersprotected static byte[]EXTRA_BYTESExtra characters as a byte arrayprotected static StringQUOTEContent dispostion charactersprotected static byte[]QUOTE_BYTESContent dispostion as a byte array
-
Constructor Summary
Constructors Constructor Description Part()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static StringgetBoundary()Deprecated.uses a constant string.abstract StringgetCharSet()Return the character encoding of this part.abstract StringgetContentType()Returns the content type of this part.static longgetLengthOfParts(Part[] parts)Return the total sum of all parts and that of the last boundarystatic longgetLengthOfParts(Part[] parts, byte[] partBoundary)Gets the length of the multipart message including the given parts.abstract StringgetName()Return the name of this part.protected byte[]getPartBoundary()Gets the part boundary to be used.abstract StringgetTransferEncoding()Return the transfer encoding of this part.booleanisRepeatable()Tests if this part can be sent more than once.longlength()Return the full length of all the data.protected abstract longlengthOfData()Return the length of the main contentvoidsend(OutputStream out)Write all the data to the output stream.protected voidsendContentTypeHeader(OutputStream out)Write the content type header to the specified output streamprotected abstract voidsendData(OutputStream out)Write the data to the specified output streamprotected voidsendDispositionHeader(OutputStream out)Write the content disposition header to the specified output streamprotected voidsendEnd(OutputStream out)Write the end data to the output stream.protected voidsendEndOfHeader(OutputStream out)Write the end of the header to the output streamstatic voidsendParts(OutputStream out, Part[] parts)Write all parts and the last boundary to the specified output stream.static voidsendParts(OutputStream out, Part[] parts, byte[] partBoundary)Write all parts and the last boundary to the specified output stream.protected voidsendStart(OutputStream out)Write the start to the specified output streamprotected voidsendTransferEncodingHeader(OutputStream out)Write the content transfer encoding header to the specified output streamStringtoString()Return a string representation of this object.
-
-
-
Field Detail
-
BOUNDARY
protected static final String BOUNDARY
Deprecated.The boundary- See Also:
- Constant Field Values
-
BOUNDARY_BYTES
protected static final byte[] BOUNDARY_BYTES
Deprecated.The boundary as a byte array.
-
CRLF
protected static final String CRLF
Carriage return/linefeed- See Also:
- Constant Field Values
-
CRLF_BYTES
protected static final byte[] CRLF_BYTES
Carriage return/linefeed as a byte array
-
QUOTE
protected static final String QUOTE
Content dispostion characters- See Also:
- Constant Field Values
-
QUOTE_BYTES
protected static final byte[] QUOTE_BYTES
Content dispostion as a byte array
-
EXTRA
protected static final String EXTRA
Extra characters- See Also:
- Constant Field Values
-
EXTRA_BYTES
protected static final byte[] EXTRA_BYTES
Extra characters as a byte array
-
CONTENT_DISPOSITION
protected static final String CONTENT_DISPOSITION
Content dispostion characters- See Also:
- Constant Field Values
-
CONTENT_DISPOSITION_BYTES
protected static final byte[] CONTENT_DISPOSITION_BYTES
Content dispostion as a byte array
-
CONTENT_TYPE
protected static final String CONTENT_TYPE
Content type header- See Also:
- Constant Field Values
-
CONTENT_TYPE_BYTES
protected static final byte[] CONTENT_TYPE_BYTES
Content type header as a byte array
-
CHARSET
protected static final String CHARSET
Content charset- See Also:
- Constant Field Values
-
CHARSET_BYTES
protected static final byte[] CHARSET_BYTES
Content charset as a byte array
-
CONTENT_TRANSFER_ENCODING
protected static final String CONTENT_TRANSFER_ENCODING
Content type header- See Also:
- Constant Field Values
-
CONTENT_TRANSFER_ENCODING_BYTES
protected static final byte[] CONTENT_TRANSFER_ENCODING_BYTES
Content type header as a byte array
-
-
Method Detail
-
getBoundary
public static String getBoundary()
Deprecated.uses a constant string. Rather usegetPartBoundary()Return the boundary string.- Returns:
- the boundary string
-
getName
public abstract String getName()
Return the name of this part.- Returns:
- The name.
-
getContentType
public abstract String getContentType()
Returns the content type of this part.- Returns:
- the content type, or
nullto exclude the content type header
-
getCharSet
public abstract String getCharSet()
Return the character encoding of this part.- Returns:
- the character encoding, or
nullto exclude the character encoding header
-
getTransferEncoding
public abstract String getTransferEncoding()
Return the transfer encoding of this part.- Returns:
- the transfer encoding, or
nullto exclude the transfer encoding header
-
getPartBoundary
protected byte[] getPartBoundary()
Gets the part boundary to be used.- Returns:
- the part boundary as an array of bytes.
- Since:
- 3.0
-
isRepeatable
public boolean isRepeatable()
Tests if this part can be sent more than once.- Returns:
trueifsendData(OutputStream)can be successfully called more than once.- Since:
- 3.0
-
sendStart
protected void sendStart(OutputStream out) throws IOException
Write the start to the specified output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
sendDispositionHeader
protected void sendDispositionHeader(OutputStream out) throws IOException
Write the content disposition header to the specified output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
sendContentTypeHeader
protected void sendContentTypeHeader(OutputStream out) throws IOException
Write the content type header to the specified output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
sendTransferEncodingHeader
protected void sendTransferEncodingHeader(OutputStream out) throws IOException
Write the content transfer encoding header to the specified output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
sendEndOfHeader
protected void sendEndOfHeader(OutputStream out) throws IOException
Write the end of the header to the output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
sendData
protected abstract void sendData(OutputStream out) throws IOException
Write the data to the specified output stream- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
lengthOfData
protected abstract long lengthOfData() throws IOExceptionReturn the length of the main content- Returns:
- long The length.
- Throws:
IOException- If an IO problem occurs
-
sendEnd
protected void sendEnd(OutputStream out) throws IOException
Write the end data to the output stream.- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
send
public void send(OutputStream out) throws IOException
Write all the data to the output stream. If you override this method make sure to override #length() as well- Parameters:
out- The output stream- Throws:
IOException- If an IO problem occurs.
-
length
public long length() throws IOExceptionReturn the full length of all the data. If you override this method make sure to override #send(OutputStream) as well- Returns:
- long The length.
- Throws:
IOException- If an IO problem occurs
-
toString
public String toString()
Return a string representation of this object.- Overrides:
toStringin classObject- Returns:
- A string representation of this object.
- See Also:
Object.toString()
-
sendParts
public static void sendParts(OutputStream out, Part[] parts) throws IOException
Write all parts and the last boundary to the specified output stream.- Parameters:
out- The stream to write to.parts- The parts to write.- Throws:
IOException- If an I/O error occurs while writing the parts.
-
sendParts
public static void sendParts(OutputStream out, Part[] parts, byte[] partBoundary) throws IOException
Write all parts and the last boundary to the specified output stream.- Parameters:
out- The stream to write to.parts- The parts to write.partBoundary- The ASCII bytes to use as the part boundary.- Throws:
IOException- If an I/O error occurs while writing the parts.- Since:
- 3.0
-
getLengthOfParts
public static long getLengthOfParts(Part[] parts) throws IOException
Return the total sum of all parts and that of the last boundary- Parameters:
parts- The parts.- Returns:
- The total length
- Throws:
IOException- If an I/O error occurs while writing the parts.
-
getLengthOfParts
public static long getLengthOfParts(Part[] parts, byte[] partBoundary) throws IOException
Gets the length of the multipart message including the given parts.- Parameters:
parts- The parts.partBoundary- The ASCII bytes to use as the part boundary.- Returns:
- The total length
- Throws:
IOException- If an I/O error occurs while writing the parts.- Since:
- 3.0
-
-