Example usage for org.apache.http.entity ContentLengthStrategy CHUNKED

List of usage examples for org.apache.http.entity ContentLengthStrategy CHUNKED

Introduction

In this page you can find the example usage for org.apache.http.entity ContentLengthStrategy CHUNKED.

Prototype

int CHUNKED

To view the source code for org.apache.http.entity ContentLengthStrategy CHUNKED.

Click Source Link

Usage

From source file:org.apache.axis2.transport.http.server.AxisHttpConnectionImpl.java

public HttpRequest receiveRequest() throws HttpException, IOException {
    HttpRequest request = (HttpRequest) this.requestParser.parse();
    if (HEADERLOG.isDebugEnabled()) {
        HEADERLOG.debug(">> " + request.getRequestLine().toString());
        for (HeaderIterator it = request.headerIterator(); it.hasNext();) {
            HEADERLOG.debug(">> " + it.nextHeader().toString());
        }//  ww  w. j  a v a2s  . c  o m
    }

    // Prepare input stream
    this.in = null;
    if (request instanceof HttpEntityEnclosingRequest) {
        long len = this.contentLenStrategy.determineLength(request);
        if (len == ContentLengthStrategy.CHUNKED) {
            this.in = new ChunkedInputStream(this.inbuffer);
        } else if (len == ContentLengthStrategy.IDENTITY) {
            this.in = new IdentityInputStream(this.inbuffer);
        } else {
            this.in = new ContentLengthInputStream(inbuffer, len);
        }
    }
    return request;
}

From source file:org.mycard.net.network.Headers.java

public void parseHeader(CharArrayBuffer buffer) {
    int pos = CharArrayBuffers.setLowercaseIndexOf(buffer, ':');
    if (pos == -1) {
        return;//from   w  w w.j  a  v  a  2 s. c o m
    }
    String name = buffer.substringTrimmed(0, pos);
    if (name.length() == 0) {
        return;
    }
    pos++;

    String val = buffer.substringTrimmed(pos, buffer.length());
    // if (HttpLog.LOGV) {
    //    HttpLog.v("hdr " + buffer.length() + " " + buffer);
    // }

    switch (name.hashCode()) {
    case HASH_TRANSFER_ENCODING:
        if (name.equals(TRANSFER_ENCODING)) {
            mHeaders[IDX_TRANSFER_ENCODING] = val;
            HeaderElement[] encodings = BasicHeaderValueParser.DEFAULT.parseElements(buffer,
                    new ParserCursor(pos, buffer.length()));
            // The chunked encoding must be the last one applied RFC2616,
            // 14.41
            int len = encodings.length;
            if (HTTP.IDENTITY_CODING.equalsIgnoreCase(val)) {
                transferEncoding = ContentLengthStrategy.IDENTITY;
            } else if ((len > 0) && (HTTP.CHUNK_CODING.equalsIgnoreCase(encodings[len - 1].getName()))) {
                transferEncoding = ContentLengthStrategy.CHUNKED;
            } else {
                transferEncoding = ContentLengthStrategy.IDENTITY;
            }
        }
        break;
    case HASH_CONTENT_LEN:
        if (name.equals(CONTENT_LEN)) {
            mHeaders[IDX_CONTENT_LEN] = val;
            try {
                contentLength = Long.parseLong(val);
            } catch (NumberFormatException e) {
                //if (Config.LOGV) {
                //     Log.v(LOGTAG, "Headers.headers(): error parsing"
                //             + " content length: " + buffer.toString());
                // }
            }
        }
        break;
    case HASH_CONTENT_TYPE:
        if (name.equals(CONTENT_TYPE)) {
            mHeaders[IDX_CONTENT_TYPE] = val;
        }
        break;
    case HASH_CONTENT_ENCODING:
        if (name.equals(CONTENT_ENCODING)) {
            mHeaders[IDX_CONTENT_ENCODING] = val;
        }
        break;
    case HASH_CONN_DIRECTIVE:
        if (name.equals(CONN_DIRECTIVE)) {
            mHeaders[IDX_CONN_DIRECTIVE] = val;
            setConnectionType(buffer, pos);
        }
        break;
    case HASH_LOCATION:
        if (name.equals(LOCATION)) {
            mHeaders[IDX_LOCATION] = val;
        }
        break;
    case HASH_PROXY_CONNECTION:
        if (name.equals(PROXY_CONNECTION)) {
            mHeaders[IDX_PROXY_CONNECTION] = val;
            setConnectionType(buffer, pos);
        }
        break;
    case HASH_WWW_AUTHENTICATE:
        if (name.equals(WWW_AUTHENTICATE)) {
            mHeaders[IDX_WWW_AUTHENTICATE] = val;
        }
        break;
    case HASH_PROXY_AUTHENTICATE:
        if (name.equals(PROXY_AUTHENTICATE)) {
            mHeaders[IDX_PROXY_AUTHENTICATE] = val;
        }
        break;
    case HASH_CONTENT_DISPOSITION:
        if (name.equals(CONTENT_DISPOSITION)) {
            mHeaders[IDX_CONTENT_DISPOSITION] = val;
        }
        break;
    case HASH_ACCEPT_RANGES:
        if (name.equals(ACCEPT_RANGES)) {
            mHeaders[IDX_ACCEPT_RANGES] = val;
        }
        break;
    case HASH_EXPIRES:
        if (name.equals(EXPIRES)) {
            mHeaders[IDX_EXPIRES] = val;
        }
        break;
    case HASH_CACHE_CONTROL:
        if (name.equals(CACHE_CONTROL)) {
            mHeaders[IDX_CACHE_CONTROL] = val;
        }
        break;
    case HASH_LAST_MODIFIED:
        if (name.equals(LAST_MODIFIED)) {
            mHeaders[IDX_LAST_MODIFIED] = val;
        }
        break;
    case HASH_ETAG:
        if (name.equals(ETAG)) {
            mHeaders[IDX_ETAG] = val;
        }
        break;
    case HASH_SET_COOKIE:
        if (name.equals(SET_COOKIE)) {
            mHeaders[IDX_SET_COOKIE] = val;
            cookies.add(val);
        }
        break;
    case HASH_PRAGMA:
        if (name.equals(PRAGMA)) {
            mHeaders[IDX_PRAGMA] = val;
        }
        break;
    case HASH_REFRESH:
        if (name.equals(REFRESH)) {
            mHeaders[IDX_REFRESH] = val;
        }
        break;
    default:
        mExtraHeaderNames.add(name);
        mExtraHeaderValues.add(val);
    }
}

From source file:com.jana.android.net.Headers.java

public void parseHeader(CharArrayBuffer buffer) {
    int pos = CharArrayBuffers.setLowercaseIndexOf(buffer, ':');
    if (pos == -1) {
        return;/*from w  w w  .j  a  va2  s.  c  om*/
    }
    String name = buffer.substringTrimmed(0, pos);
    if (name.length() == 0) {
        return;
    }
    pos++;
    String val = buffer.substringTrimmed(pos, buffer.length());
    if (HttpLog.LOGV) {
        HttpLog.v("hdr " + buffer.length() + " " + buffer);
    }
    switch (name.hashCode()) {
    case HASH_TRANSFER_ENCODING:
        if (name.equals(TRANSFER_ENCODING)) {
            mHeaders[IDX_TRANSFER_ENCODING] = val;
            HeaderElement[] encodings = BasicHeaderValueParser.DEFAULT.parseElements(buffer,
                    new ParserCursor(pos, buffer.length()));
            // The chunked encoding must be the last one applied RFC2616,
            // 14.41
            int len = encodings.length;
            if (HTTP.IDENTITY_CODING.equalsIgnoreCase(val)) {
                transferEncoding = ContentLengthStrategy.IDENTITY;
            } else if ((len > 0) && (HTTP.CHUNK_CODING.equalsIgnoreCase(encodings[len - 1].getName()))) {
                transferEncoding = ContentLengthStrategy.CHUNKED;
            } else {
                transferEncoding = ContentLengthStrategy.IDENTITY;
            }
        }
        break;
    case HASH_CONTENT_LEN:
        if (name.equals(CONTENT_LEN)) {
            mHeaders[IDX_CONTENT_LEN] = val;
            try {
                contentLength = Long.parseLong(val);
            } catch (NumberFormatException e) {
                if (false) {
                    Log.v(LOGTAG, "Headers.headers(): error parsing" + " content length: " + buffer.toString());
                }
            }
        }
        break;
    case HASH_CONTENT_TYPE:
        if (name.equals(CONTENT_TYPE)) {
            mHeaders[IDX_CONTENT_TYPE] = val;
        }
        break;
    case HASH_CONTENT_ENCODING:
        if (name.equals(CONTENT_ENCODING)) {
            mHeaders[IDX_CONTENT_ENCODING] = val;
        }
        break;
    case HASH_CONN_DIRECTIVE:
        if (name.equals(CONN_DIRECTIVE)) {
            mHeaders[IDX_CONN_DIRECTIVE] = val;
            setConnectionType(buffer, pos);
        }
        break;
    case HASH_LOCATION:
        if (name.equals(LOCATION)) {
            mHeaders[IDX_LOCATION] = val;
        }
        break;
    case HASH_PROXY_CONNECTION:
        if (name.equals(PROXY_CONNECTION)) {
            mHeaders[IDX_PROXY_CONNECTION] = val;
            setConnectionType(buffer, pos);
        }
        break;
    case HASH_WWW_AUTHENTICATE:
        if (name.equals(WWW_AUTHENTICATE)) {
            mHeaders[IDX_WWW_AUTHENTICATE] = val;
        }
        break;
    case HASH_PROXY_AUTHENTICATE:
        if (name.equals(PROXY_AUTHENTICATE)) {
            mHeaders[IDX_PROXY_AUTHENTICATE] = val;
        }
        break;
    case HASH_CONTENT_DISPOSITION:
        if (name.equals(CONTENT_DISPOSITION)) {
            mHeaders[IDX_CONTENT_DISPOSITION] = val;
        }
        break;
    case HASH_ACCEPT_RANGES:
        if (name.equals(ACCEPT_RANGES)) {
            mHeaders[IDX_ACCEPT_RANGES] = val;
        }
        break;
    case HASH_EXPIRES:
        if (name.equals(EXPIRES)) {
            mHeaders[IDX_EXPIRES] = val;
        }
        break;
    case HASH_CACHE_CONTROL:
        if (name.equals(CACHE_CONTROL)) {
            // In case where we receive more than one header, create a ','
            // separated list.
            // This should be ok, according to RFC 2616 chapter 4.2
            if (mHeaders[IDX_CACHE_CONTROL] != null && mHeaders[IDX_CACHE_CONTROL].length() > 0) {
                mHeaders[IDX_CACHE_CONTROL] += (',' + val);
            } else {
                mHeaders[IDX_CACHE_CONTROL] = val;
            }
        }
        break;
    case HASH_LAST_MODIFIED:
        if (name.equals(LAST_MODIFIED)) {
            mHeaders[IDX_LAST_MODIFIED] = val;
        }
        break;
    case HASH_ETAG:
        if (name.equals(ETAG)) {
            mHeaders[IDX_ETAG] = val;
        }
        break;
    case HASH_SET_COOKIE:
        if (name.equals(SET_COOKIE)) {
            mHeaders[IDX_SET_COOKIE] = val;
            cookies.add(val);
        }
        break;
    case HASH_PRAGMA:
        if (name.equals(PRAGMA)) {
            mHeaders[IDX_PRAGMA] = val;
        }
        break;
    case HASH_REFRESH:
        if (name.equals(REFRESH)) {
            mHeaders[IDX_REFRESH] = val;
        }
        break;
    case HASH_X_PERMITTED_CROSS_DOMAIN_POLICIES:
        if (name.equals(X_PERMITTED_CROSS_DOMAIN_POLICIES)) {
            mHeaders[IDX_X_PERMITTED_CROSS_DOMAIN_POLICIES] = val;
        }
        break;
    default:
        mExtraHeaderNames.add(name);
        mExtraHeaderValues.add(val);
    }
}

From source file:org.mycard.net.network.AndroidHttpClientConnection.java

/***
 * Return the next response entity.// ww w  .j a  v  a2s  .  c  om
 * @param headers contains values for parsing entity
 * @see HttpClientConnection#receiveResponseEntity(HttpResponse response)
 */
public HttpEntity receiveResponseEntity(final Headers headers) {
    assertOpen();
    BasicHttpEntity entity = new BasicHttpEntity();

    long len = determineLength(headers);
    if (len == ContentLengthStrategy.CHUNKED) {
        entity.setChunked(true);
        entity.setContentLength(-1);
        entity.setContent(new ChunkedInputStream(inbuffer));
    } else if (len == ContentLengthStrategy.IDENTITY) {
        entity.setChunked(false);
        entity.setContentLength(-1);
        entity.setContent(new IdentityInputStream(inbuffer));
    } else {
        entity.setChunked(false);
        entity.setContentLength(len);
        entity.setContent(new ContentLengthInputStream(inbuffer, len));
    }

    String contentTypeHeader = headers.getContentType();
    if (contentTypeHeader != null) {
        entity.setContentType(contentTypeHeader);
    }
    String contentEncodingHeader = headers.getContentEncoding();
    if (contentEncodingHeader != null) {
        entity.setContentEncoding(contentEncodingHeader);
    }

    return entity;
}