Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.httpclient.methods.multipart
Class MultipartRequestEntity

    java.lang.Object
      org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity

All Implemented Interfaces:
  RequestEntity

    public class MultipartRequestEntity

extends 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

Field Summary
`protected Part[]` | `parts` The MIME parts as set by the constructor

Constructor Summary
`MultipartRequestEntity(Part[] parts, HttpMethodParams params)` Creates a new multipart entity containing the given parts.

Method Summary
`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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### parts

    protected Part[] parts

  The MIME parts as set by the constructor

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

### 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.

  Returns:
    The boundary string of this entity in ASCII encoding.

### isRepeatable

    public boolean isRepeatable()

  Returns `true` if all parts are repeatable, `false` otherwise.

  Specified by:
    `isRepeatable` in interface `RequestEntity`
  Returns:
    `true` if the entity can be written to `OutputStream` more than once, `false` otherwise.
  See Also:
    `RequestEntity.isRepeatable()`

### writeRequest

    public void writeRequest(OutputStream out)
                      throws IOException

  Description copied from interface: `RequestEntity`
  Writes the request entity to the given stream.

  Specified by:
    `writeRequest` in interface `RequestEntity`
  Throws:
    `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 the `EntityEnclosingMethod` will use chunk encoding to transmit the request entity.

  Specified by:
    `getContentLength` in interface `RequestEntity`
  Returns:
    a non-negative value when content length is known or a negative value when content length is not known

### getContentType

    public 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 interface `RequestEntity`
  Returns:
    the entity's content type
  See Also:
    `HttpMethod.setRequestHeader(String, String)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2007 Apache Software Foundation. All Rights Reserved.