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 String
BOUNDARY
Deprecated.protected static byte[]
BOUNDARY_BYTES
Deprecated.protected static String
CHARSET
Content charsetprotected static byte[]
CHARSET_BYTES
Content charset as a byte arrayprotected static String
CONTENT_DISPOSITION
Content dispostion charactersprotected static byte[]
CONTENT_DISPOSITION_BYTES
Content dispostion as a byte arrayprotected static String
CONTENT_TRANSFER_ENCODING
Content type headerprotected static byte[]
CONTENT_TRANSFER_ENCODING_BYTES
Content type header as a byte arrayprotected static String
CONTENT_TYPE
Content type headerprotected static byte[]
CONTENT_TYPE_BYTES
Content type header as a byte arrayprotected static String
CRLF
Carriage return/linefeedprotected static byte[]
CRLF_BYTES
Carriage return/linefeed as a byte arrayprotected static String
EXTRA
Extra charactersprotected static byte[]
EXTRA_BYTES
Extra characters as a byte arrayprotected static String
QUOTE
Content dispostion charactersprotected static byte[]
QUOTE_BYTES
Content 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 String
getBoundary()
Deprecated.uses a constant string.abstract String
getCharSet()
Return the character encoding of this part.abstract String
getContentType()
Returns the content type of this part.static long
getLengthOfParts(Part[] parts)
Return the total sum of all parts and that of the last boundarystatic long
getLengthOfParts(Part[] parts, byte[] partBoundary)
Gets the length of the multipart message including the given parts.abstract String
getName()
Return the name of this part.protected byte[]
getPartBoundary()
Gets the part boundary to be used.abstract String
getTransferEncoding()
Return the transfer encoding of this part.boolean
isRepeatable()
Tests if this part can be sent more than once.long
length()
Return the full length of all the data.protected abstract long
lengthOfData()
Return the length of the main contentvoid
send(OutputStream out)
Write all the data to the output stream.protected void
sendContentTypeHeader(OutputStream out)
Write the content type header to the specified output streamprotected abstract void
sendData(OutputStream out)
Write the data to the specified output streamprotected void
sendDispositionHeader(OutputStream out)
Write the content disposition header to the specified output streamprotected void
sendEnd(OutputStream out)
Write the end data to the output stream.protected void
sendEndOfHeader(OutputStream out)
Write the end of the header to the output streamstatic void
sendParts(OutputStream out, Part[] parts)
Write all parts and the last boundary to the specified output stream.static void
sendParts(OutputStream out, Part[] parts, byte[] partBoundary)
Write all parts and the last boundary to the specified output stream.protected void
sendStart(OutputStream out)
Write the start to the specified output streamprotected void
sendTransferEncodingHeader(OutputStream out)
Write the content transfer encoding header to the specified output streamString
toString()
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
null
to exclude the content type header
-
getCharSet
public abstract String getCharSet()
Return the character encoding of this part.- Returns:
- the character encoding, or
null
to exclude the character encoding header
-
getTransferEncoding
public abstract String getTransferEncoding()
Return the transfer encoding of this part.- Returns:
- the transfer encoding, or
null
to 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:
true
ifsendData(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 IOException
Return 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 IOException
Return 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:
toString
in 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
-
-