Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.commons.httpclient.methods.multipart
Class MultipartRequestEntity  view MultipartRequestEntity download MultipartRequestEntity.java

java.lang.Object
  extended byorg.apache.commons.httpclient.methods.multipart.MultipartRequestEntity
All Implemented Interfaces:
org.apache.commons.httpclient.methods.RequestEntity

public class MultipartRequestEntity
extends java.lang.Object
implements org.apache.commons.httpclient.methods.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

Field Summary
private static org.apache.commons.logging.Log log
           
private static byte[] MULTIPART_CHARS
          The pool of ASCII chars to be used for generating a multipart boundary.
private static java.lang.String MULTIPART_FORM_CONTENT_TYPE
          The Content-Type for multipart/form-data.
private  byte[] multipartBoundary
           
private  org.apache.commons.httpclient.params.HttpMethodParams params
           
private  Part[] parts
           
 
Constructor Summary
MultipartRequestEntity(Part[] parts, org.apache.commons.httpclient.params.HttpMethodParams params)
          Creates a new multipart entity containing the given parts.
 
Method Summary
private static byte[] generateMultipartBoundary()
          Generates a random multipart boundary string.
 long getContentLength()
          Gets the request entity's length.
 java.lang.String getContentType()
          Gets the entity's content type.
private  byte[] getMultipartBoundary()
           
 boolean isRepeatable()
          Returns true if all parts are repeatable, false otherwise.
 void writeRequest(java.io.OutputStream out)
          Writes the request entity to the given stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static final org.apache.commons.logging.Log log

MULTIPART_FORM_CONTENT_TYPE

private static final java.lang.String MULTIPART_FORM_CONTENT_TYPE
The Content-Type for multipart/form-data.

See Also:
Constant Field Values

MULTIPART_CHARS

private static byte[] MULTIPART_CHARS
The pool of ASCII chars to be used for generating a multipart boundary.


parts

private Part[] parts

multipartBoundary

private byte[] multipartBoundary

params

private org.apache.commons.httpclient.params.HttpMethodParams params
Constructor Detail

MultipartRequestEntity

public MultipartRequestEntity(Part[] parts,
                              org.apache.commons.httpclient.params.HttpMethodParams params)
Creates a new multipart entity containing the given parts.

Method Detail

generateMultipartBoundary

private static byte[] generateMultipartBoundary()
Generates a random multipart boundary string.


getMultipartBoundary

private byte[] getMultipartBoundary()

isRepeatable

public boolean isRepeatable()
Returns true if all parts are repeatable, false otherwise.

Specified by:
isRepeatable in interface org.apache.commons.httpclient.methods.RequestEntity

writeRequest

public void writeRequest(java.io.OutputStream out)
                  throws java.io.IOException
Description copied from interface: org.apache.commons.httpclient.methods.RequestEntity
Writes the request entity to the given stream.

Specified by:
writeRequest in interface org.apache.commons.httpclient.methods.RequestEntity

getContentLength

public long getContentLength()
Description copied from interface: org.apache.commons.httpclient.methods.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 the org.apache.commons.httpclient.methods.EntityEnclosingMethod will use chunk encoding to transmit the request entity.

Specified by:
getContentLength in interface org.apache.commons.httpclient.methods.RequestEntity

getContentType

public java.lang.String getContentType()
Description copied from interface: org.apache.commons.httpclient.methods.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 interface org.apache.commons.httpclient.methods.RequestEntity