org.apache.thrift.transport

## Class THttpClient

- java.lang.Object
- - org.apache.thrift.transport.TTransport
  - - org.apache.thrift.transport.THttpClient

-     public class THttpClient
      extends TTransport

  HTTP implementation of the TTransport interface. Used for working with a Thrift web services implementation (using for example TServlet). This class offers two implementations of the HTTP transport. One uses HttpURLConnection instances, the other HttpClient from Apache Http Components. The chosen implementation depends on the constructor used to create the THttpClient instance. Using the THttpClient(String url) constructor or passing null as the HttpClient to THttpClient(String url, HttpClient client) will create an instance which will use HttpURLConnection. When using HttpClient, the following configuration leads to 5-15% better performance than the HttpURLConnection implementation: http.protocol.version=HttpVersion.HTTP_1_1 http.protocol.content-charset=UTF-8 http.protocol.expect-continue=false http.connection.stalecheck=false Also note that under high load, the HttpURLConnection implementation may exhaust the open file descriptor limit.
  See Also:
    THRIFT-970

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `THttpClient.Factory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `THttpClient(java.lang.String url)`
    `THttpClient(java.lang.String url, org.apache.http.client.HttpClient client)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the transport.
    `void` | `flush()` Flush any pending data out of a transport buffer.
    `boolean` | `isOpen()` Queries whether the transport is open.
    `void` | `open()` Opens the transport for reading/writing.
    `int` | `read(byte[] buf, int off, int len)` Reads up to len bytes into buffer buf, starting at offset off.
    `void` | `setConnectTimeout(int timeout)`
    `void` | `setCustomHeader(java.lang.String key, java.lang.String value)`
    `void` | `setCustomHeaders(java.util.Map<java.lang.String,java.lang.String> headers)`
    `void` | `setReadTimeout(int timeout)`
    `void` | `write(byte[] buf, int off, int len)` Writes up to len bytes from the buffer.

    - ### Methods inherited from class org.apache.thrift.transport.TTransport

      `consumeBuffer, getBuffer, getBufferPosition, getBytesRemainingInBuffer, peek, readAll, write`

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

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

- - ### Constructor Detail

    - #### THttpClient

          public THttpClient(java.lang.String url)
                      throws TTransportException

      Throws:
        `TTransportException`

    - #### THttpClient

          public THttpClient(java.lang.String url,
                     org.apache.http.client.HttpClient client)
                      throws TTransportException

      Throws:
        `TTransportException`

  - ### Method Detail

    - #### setConnectTimeout

          public void setConnectTimeout(int timeout)

    - #### setReadTimeout

          public void setReadTimeout(int timeout)

    - #### setCustomHeaders

          public void setCustomHeaders(java.util.Map<java.lang.String,java.lang.String> headers)

    - #### setCustomHeader

          public void setCustomHeader(java.lang.String key,
                             java.lang.String value)

    - #### open

          public void open()

      Description copied from class: `TTransport`
      Opens the transport for reading/writing.
      Specified by:
        `open` in class `TTransport`

    - #### close

          public void close()

      Description copied from class: `TTransport`
      Closes the transport.
      Specified by:
        `close` in class `TTransport`

    - #### isOpen

          public boolean isOpen()

      Description copied from class: `TTransport`
      Queries whether the transport is open.
      Specified by:
        `isOpen` in class `TTransport`
      Returns:
        True if the transport is open.

    - #### read

          public int read(byte[] buf,
                 int off,
                 int len)
                   throws TTransportException

      Description copied from class: `TTransport`
      Reads up to len bytes into buffer buf, starting at offset off.
      Specified by:
        `read` in class `TTransport`
      Parameters:
        `buf` - Array to read into
        `off` - Index to start reading at
        `len` - Maximum number of bytes to read
      Returns:
        The number of bytes actually read
      Throws:
        `TTransportException` - if there was an error reading data

    - #### write

          public void write(byte[] buf,
                   int off,
                   int len)

      Description copied from class: `TTransport`
      Writes up to len bytes from the buffer.
      Specified by:
        `write` in class `TTransport`
      Parameters:
        `buf` - The output data buffer
        `off` - The offset to start writing from
        `len` - The number of bytes to write

    - #### flush

          public void flush()
                     throws TTransportException

      Description copied from class: `TTransport`
      Flush any pending data out of a transport buffer.
      Overrides:
        `flush` in class `TTransport`
      Throws:
        `TTransportException` - if there was an error writing out data.