Java tutorial
package org.apache.http.impl.entity; import java.io.IOException; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpException; import org.apache.http.HttpMessage; import org.apache.http.annotation.Immutable; import org.apache.http.entity.BasicHttpEntity; import org.apache.http.entity.ContentLengthStrategy; import org.apache.http.impl.io.ChunkedInputStream; import org.apache.http.impl.io.ContentLengthInputStream; import org.apache.http.impl.io.IdentityInputStream; import org.apache.http.io.SessionInputBuffer; import org.apache.http.protocol.HTTP; import org.apache.http.util.Args; @Immutable @Deprecated public class EntityDeserializer { private final ContentLengthStrategy lenStrategy; public EntityDeserializer(ContentLengthStrategy contentLengthStrategy) { this.lenStrategy = (ContentLengthStrategy) Args.notNull(contentLengthStrategy, "Content length strategy"); } protected BasicHttpEntity doDeserialize(SessionInputBuffer sessionInputBuffer, HttpMessage httpMessage) throws HttpException, IOException { BasicHttpEntity basicHttpEntity = new BasicHttpEntity(); long determineLength = this.lenStrategy.determineLength(httpMessage); if (determineLength == -2) { basicHttpEntity.setChunked(true); basicHttpEntity.setContentLength(-1); basicHttpEntity.setContent(new ChunkedInputStream(sessionInputBuffer)); } else if (determineLength == -1) { basicHttpEntity.setChunked(false); basicHttpEntity.setContentLength(-1); basicHttpEntity.setContent(new IdentityInputStream(sessionInputBuffer)); } else { basicHttpEntity.setChunked(false); basicHttpEntity.setContentLength(determineLength); basicHttpEntity.setContent(new ContentLengthInputStream(sessionInputBuffer, determineLength)); } Header firstHeader = httpMessage.getFirstHeader(HTTP.CONTENT_TYPE); if (firstHeader != null) { basicHttpEntity.setContentType(firstHeader); } firstHeader = httpMessage.getFirstHeader(HTTP.CONTENT_ENCODING); if (firstHeader != null) { basicHttpEntity.setContentEncoding(firstHeader); } return basicHttpEntity; } public HttpEntity deserialize(SessionInputBuffer sessionInputBuffer, HttpMessage httpMessage) throws HttpException, IOException { Args.notNull(sessionInputBuffer, "Session input buffer"); Args.notNull(httpMessage, "HTTP message"); return doDeserialize(sessionInputBuffer, httpMessage); } }