org.apache.commons.httpclient.methods.multipart
Class MultipartRequestEntity
java.lang.Object
org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity
- RequestEntity
public class MultipartRequestEntity
extends java.lang.Object
Implements a request entity suitable for an HTTP multipart POST method.
The HTTP multipart POST method is defined in section 3.3 of
RFC1867:
The media-type multipart/form-data follows the rules of all multipart
MIME data streams as outlined in RFC 1521. The multipart/form-data contains
a series of parts. Each part is expected to contain a content-disposition
header where the value is "form-data" and a name attribute specifies
the field name within the form, e.g., 'content-disposition: form-data;
name="xxxxx"', where xxxxx is the field name corresponding to that field.
Field names originally in non-ASCII character sets may be encoded using
the method outlined in RFC 1522.
This entity is designed to be used in conjunction with the
post method
to provide
multipart posts. Example usage:
File f = new File("/path/fileToUpload.txt");
PostMethod filePost = new PostMethod("http://host/some_path");
Part[] parts = {
new StringPart("param_name", "value"),
new FilePart(f.getName(), f)
};
filePost.setRequestEntity(
new MultipartRequestEntity(parts, filePost.getParams())
);
HttpClient client = new HttpClient();
int status = client.executeMethod(filePost);
protected Part[] | parts - The MIME parts as set by the constructor
|
long | getContentLength() - Gets the request entity's length.
|
String | getContentType() - Gets the entity's content type.
|
protected byte[] | getMultipartBoundary() - Returns the MIME boundary string that is used to demarcate boundaries of
this part.
|
boolean | isRepeatable() - Returns
true if all parts are repeatable, false otherwise.
|
void | writeRequest(OutputStream out) - Writes the request entity to the given stream.
|
parts
protected Part[] parts
The MIME parts as set by the constructor
MultipartRequestEntity
public MultipartRequestEntity(Part[] parts,
HttpMethodParams params)
Creates a new multipart entity containing the given parts.
parts
- The parts to include.params
- The params of the HttpMethod using this entity.
getContentLength
public long getContentLength()
Gets the request entity's length. This method should return a non-negative value if the content
length is known or a negative value if it is not. In the latter case the
EntityEnclosingMethod
will use chunk encoding to
transmit the request entity.
- getContentLength in interface RequestEntity
- a non-negative value when content length is known or a negative value when content length
is not known
getContentType
public String getContentType()
Gets the entity's content type. This content type will be used as the value for the
"Content-Type" header.
- getContentType in interface RequestEntity
- the entity's content type
getMultipartBoundary
protected byte[] getMultipartBoundary()
Returns the MIME boundary string that is used to demarcate boundaries of
this part. The first call to this method will implicitly create a new
boundary string. To create a boundary string first the
HttpMethodParams.MULTIPART_BOUNDARY parameter is considered. Otherwise
a random one is generated.
- The boundary string of this entity in ASCII encoding.
isRepeatable
public boolean isRepeatable()
Returns true
if all parts are repeatable, false
otherwise.
- isRepeatable in interface RequestEntity
writeRequest
public void writeRequest(OutputStream out)
throws IOException
Writes the request entity to the given stream.
- writeRequest in interface RequestEntity
Copyright (c) 1999-2005 - Apache Software Foundation