Class MultipartRequestEntity
- java.lang.Object
-
- org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity
-
- All Implemented Interfaces:
RequestEntity
public class MultipartRequestEntity extends java.lang.Object implements RequestEntity
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);
- Since:
- 3.0
-
-
Constructor Summary
Constructors Constructor Description MultipartRequestEntity(Part[] parts, HttpMethodParams params)
Creates a new multipart entity containing the given parts.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getContentLength()
Gets the request entity's length.java.lang.String
getContentType()
Gets the entity's content type.boolean
isRepeatable()
Returnstrue
if all parts are repeatable,false
otherwise.void
writeRequest(java.io.OutputStream out)
Writes the request entity to the given stream.
-
-
-
Constructor Detail
-
MultipartRequestEntity
public MultipartRequestEntity(Part[] parts, HttpMethodParams params)
Creates a new multipart entity containing the given parts.- Parameters:
parts
- The parts to include.params
- The params of the HttpMethod using this entity.
-
-
Method Detail
-
isRepeatable
public boolean isRepeatable()
Returnstrue
if all parts are repeatable,false
otherwise.- Specified by:
isRepeatable
in interfaceRequestEntity
- Returns:
- true if the entity can be written to
OutputStream
more than once, false otherwise. - See Also:
RequestEntity.isRepeatable()
-
writeRequest
public void writeRequest(java.io.OutputStream out) throws java.io.IOException
Description copied from interface:RequestEntity
Writes the request entity to the given stream.- Specified by:
writeRequest
in interfaceRequestEntity
- Throws:
java.io.IOException
-
getContentLength
public long getContentLength()
Description copied from interface:RequestEntity
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 theEntityEnclosingMethod
will use chunk encoding to transmit the request entity.- Specified by:
getContentLength
in interfaceRequestEntity
- Returns:
- a non-negative value when content length is known or a negative value when content length is not known
-
getContentType
public java.lang.String getContentType()
Description copied from interface:RequestEntity
Gets the entity's content type. This content type will be used as the value for the "Content-Type" header.- Specified by:
getContentType
in interfaceRequestEntity
- Returns:
- the entity's content type
- See Also:
HttpMethod.setRequestHeader(String, String)
-
-