Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.teleal.cling.transport.impl
Class StreamClientImpl

    java.lang.Object
      org.teleal.cling.transport.impl.StreamClientImpl

All Implemented Interfaces:
  StreamClient

    public class StreamClientImpl

extends Object
implements StreamClient

Default implementation based on the JDK's `HttpURLConnection`.

This class works around a serious design issue in the SUN JDK, so it will not work on any JDK that doesn't offer the `sun.net.www.protocol.http.HttpURLConnection` implementation.

Author:
  Christian Bauer

Field Summary
`protected StreamClientConfigurationImpl` | `configuration`

Constructor Summary
`StreamClientImpl(StreamClientConfigurationImpl configuration)`

Method Summary
`protected void` | `applyHeaders(HttpURLConnection urlConnection, org.teleal.common.http.Headers headers)`
`protected void` | `applyRequestBody(HttpURLConnection urlConnection, StreamRequestMessage requestMessage)`
`protected void` | `applyRequestProperties(HttpURLConnection urlConnection, StreamRequestMessage requestMessage)`
`protected StreamResponseMessage` | `createResponse(HttpURLConnection urlConnection, InputStream inputStream)`
`StreamClientConfigurationImpl` | `getConfiguration()`
`StreamResponseMessage` | `sendRequest(StreamRequestMessage requestMessage)` Sends the given request via TCP (HTTP) and returns the response.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### configuration

    protected final StreamClientConfigurationImpl configuration

Constructor Detail

### StreamClientImpl

    public StreamClientImpl(StreamClientConfigurationImpl configuration)
                     throws InitializationException

Throws:
  `InitializationException`

Method Detail

### getConfiguration

    public StreamClientConfigurationImpl getConfiguration()

  Specified by:
    `getConfiguration` in interface `StreamClient`
  Returns:
    This service's configuration.

### sendRequest

    public StreamResponseMessage sendRequest(StreamRequestMessage requestMessage)

  Description copied from interface: `StreamClient`
  Sends the given request via TCP (HTTP) and returns the response.

  This method will always try to complete execution without throwing an exception. It will return `null` if an error occurs, and optionally log any exception messages.

  This method is required to add a `Host` HTTP header to the outgoing HTTP request, even if the given `StreamRequestMessage` does not contain such a header.

  This method might add a `User-Agent` HTTP header to the outgoing HTTP request.

  Specified by:
    `sendRequest` in interface `StreamClient`
  Parameters:
    `requestMessage` - The message to send.
  Returns:
    The response or `null` if no response has been received or an error occured.

### applyRequestProperties

    protected void applyRequestProperties(HttpURLConnection urlConnection,
                                          StreamRequestMessage requestMessage)

### applyHeaders

    protected void applyHeaders(HttpURLConnection urlConnection,
                                org.teleal.common.http.Headers headers)

### applyRequestBody

    protected void applyRequestBody(HttpURLConnection urlConnection,
                                    StreamRequestMessage requestMessage)
                             throws IOException

  Throws:
    `IOException`

### createResponse

    protected StreamResponseMessage createResponse(HttpURLConnection urlConnection,
                                                   InputStream inputStream)
                                            throws Exception

  Throws:
    `Exception`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010 Teleal GmbH, Switzerland. All Rights Reserved.