org.apache.http.impl.entity

## Class StrictContentLengthStrategy

- java.lang.Object
- - org.apache.http.impl.entity.StrictContentLengthStrategy

All Implemented Interfaces:
  ContentLengthStrategy

    @Immutable
    public class StrictContentLengthStrategy
    extends Object
    implements ContentLengthStrategy

The strict implementation of the content length strategy. This class will throw `ProtocolException` if it encounters an unsupported transfer encoding or a malformed `Content-Length` header value.

This class recognizes "chunked" and "identitiy" transfer-coding only.

Since:
  4.0

### Field Summary

Fields
`static StrictContentLengthStrategy` `INSTANCE`

### Fields inherited from interface org.apache.http.entity.ContentLengthStrategy

`CHUNKED, IDENTITY`

### Constructor Summary

Constructors
Constructor and Description
`StrictContentLengthStrategy()` Creates `StrictContentLengthStrategy` instance.
`StrictContentLengthStrategy(int implicitLen)` Creates `StrictContentLengthStrategy` instance with the given length used per default when content length is not explicitly specified in the message.

### Method Summary

Methods
`long` `determineLength(HttpMessage message)` Returns length of the given message in bytes.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### INSTANCE

    public static final StrictContentLengthStrategy INSTANCE

### Constructor Detail

#### StrictContentLengthStrategy

    public StrictContentLengthStrategy(int implicitLen)

Creates `StrictContentLengthStrategy` instance with the given length used per default when content length is not explicitly specified in the message.

Parameters:
  `implicitLen` - implicit content length.
Since:
  4.2

#### StrictContentLengthStrategy

    public StrictContentLengthStrategy()

Creates `StrictContentLengthStrategy` instance. `ContentLengthStrategy.IDENTITY` is used per default when content length is not explicitly specified in the message.

### Method Detail

#### determineLength

    public long determineLength(HttpMessage message)
                         throws HttpException

Description copied from interface: `ContentLengthStrategy`
Returns length of the given message in bytes. The returned value must be a non-negative number, `ContentLengthStrategy.IDENTITY` if the end of the message will be delimited by the end of connection, or `ContentLengthStrategy.CHUNKED` if the message is chunk coded

Specified by:
  `determineLength` in interface `ContentLengthStrategy`
Parameters:
  `message` - HTTP message
Returns:
  content length, `ContentLengthStrategy.IDENTITY`, or `ContentLengthStrategy.CHUNKED`
Throws:
  `HttpException` - in case of HTTP protocol violation