hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (HTTPCLIENT-1014) ByteArrayBody as an alternative to InputStreamBody
Date Sat, 16 Oct 2010 17:28:25 GMT

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-1014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Oleg Kalnichevski resolved HTTPCLIENT-1014.
-------------------------------------------

       Resolution: Fixed
    Fix Version/s: 4.1 Alpha3

Committed to the SVN trunk. Many thanks, Axel.

Oleg

> ByteArrayBody as an alternative to InputStreamBody
> --------------------------------------------------
>
>                 Key: HTTPCLIENT-1014
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1014
>             Project: HttpComponents HttpClient
>          Issue Type: New Feature
>          Components: HttpClient
>    Affects Versions: 4.1 Alpha2
>            Reporter: Axel Fontaine
>             Fix For: 4.1 Alpha3
>
>
> InputStreamBody can not determine the content length, which in turn causes requests to
be sent with a content length of 0, even though the content is there. .NET Servers have trouble
dealing with this.
> ByteArrayBody provides an alternative that alliviates this limitation.
> Source:
>  
> import java.io.IOException;
> import java.io.OutputStream;
> import org.apache.http.entity.mime.MIME;
> import org.apache.http.entity.mime.content.AbstractContentBody;
> /**
>  * Body part that is built using a byte array containing a file.
>  * 
>  * @author Axel Fontaine
>  */
> public class ByteArrayBody extends AbstractContentBody {
>     /**
>      * The contents of the file contained in this part.
>      */
>     private byte[] data;
>     /**
>      * The name of the file contained in this part.
>      */
>     private String filename;
>     
>     /**
>      * Creates a new ByteArrayBody.
>      * 
>      * @param data The contents of the file contained in this part.
>      * @param mimeType The mime type of the file contained in this part.
>      * @param filename The name of the file contained in this part.
>      */
>     public ByteArrayBody(final byte[] data, final String mimeType, final String filename)
{
>         super(mimeType);
>         if (data == null) {
>             throw new IllegalArgumentException("byte[] may not be null");
>         }
>         this.data = data;
>         this.filename = filename;
>     }
>     /**
>      * Creates a new ByteArrayBody.
>      * 
>      * @param data The contents of the file contained in this part.
>      * @param filename The name of the file contained in this part.
>      */
>     public ByteArrayBody(final byte[] data, final String filename) {
>         this(data, "application/octet-stream", filename);
>     }
>     @Override
>     public String getFilename() {
>         return filename;
>     }
>     @Override
>     public void writeTo(OutputStream out) throws IOException {
>         out.write(data);
>     }
>     @Override
>     public String getCharset() {
>         return null;
>     }
>     @Override
>     public String getTransferEncoding() {
>         return MIME.ENC_BINARY;
>     }
>     @Override
>     public long getContentLength() {
>         return data.length;
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message