# Class GZConnectionRequest

java.lang.Object
com.codename1.io.ConnectionRequest
com.codename1.io.gzip.GZConnectionRequest

All Implemented Interfaces:
  `IOProgressListener`

public class GZConnectionRequest extends ConnectionRequest

A connection request that can detect a GZipped response, parse it automatically and unzip it. Notice that some devices (iOS) always request gzip'ed data and always decompress it for us, however in the case of iOS it doesn't remove the gziped header. The `GZConnectionRequest` is aware of such behaviors so it's better to use that when connecting to the network (if applicable).

By default `GZConnectionRequest` doesn't request gzipped data (only unzips it when its received) but it's pretty easy to do so just add the HTTP header `Accept-Encoding: gzip` e.g.:

    GZConnectionRequest con = new GZConnectionRequest();
    con.addRequestHeader("Accept-Encoding", "gzip");

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class ConnectionRequest

  `ConnectionRequest.CachingMode, ConnectionRequest.SSLCertificate`

- ## Field Summary

  ### Fields inherited from class ConnectionRequest

  `PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_LOW, PRIORITY_NORMAL, PRIORITY_REDUNDANT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GZConnectionRequest()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(java.lang.Object o)`
  `int`
  `hashCode()`
  `protected void`
  `readHeaders(java.lang.Object connection)`
  Allows reading the headers from the connection by calling the getHeader() method.
  `protected final void`
  `readResponse(java.io.InputStream input)`
  Overridden to convert the input stream you should now override readUnzipedResponse()
  `protected void`
  `readUnzipedResponse(java.io.InputStream input)`
  This method can be overridden instead of readResponse

  ### Methods inherited from class ConnectionRequest

  `addArgument, addArgument, addArgument, addArgumentArray, addArgumentNoEncoding, addArgumentNoEncoding, addArgumentNoEncodingArray, addArguments, addExceptionListener, addRequestHeader, addResponseCodeListener, addResponseListener, buildRequestBody, cacheUnmodified, canGetSSLCertificates, checkSSLCertificates, cookieReceived, cookieSent, createRequestURL, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, fetchJSON, fetchJSONAsync, fireResponseListener, getCachedData, getCacheMode, getContentLength, getContentType, getCookieHeader, getDefaultCacheMode, getDefaultUserAgent, getDestinationFile, getDestinationStorage, getDisposeOnCompletion, getHeader, getHeaderFieldNames, getHeaders, getHttpMethod, getPriority, getReadTimeout, getRequestBody, getRequestBodyData, getResponseCode, getResponseContentType, getResponseData, getResponseErrorMessage, getResposeCode, getShowOnInit, getSilentRetryCount, getSSLCertificates, getTimeout, getUrl, getUserAgent, getYield, handleErrorResponseCode, handleException, handleIOException, handleRuntimeException, hasResponseListeners, initConnection, initCookieHeader, ioStreamUpdate, isCheckSSLCertificates, isCookiesEnabled, isCookiesEnabledDefault, isDefaultFollowRedirects, isDuplicateSupported, isFailSilently, isFollowRedirects, isHandleErrorCodesInGlobalErrorHandler, isInsecure, isKilled, isNativeCookieSharingSupported, isPausable, isPaused, isPost, isReadRequest, isReadResponseForErrors, isReadResponseForErrorsDefault, isReadTimeoutSupported, isRedirecting, isWriteRequest, kill, onRedirect, pause, postResponse, purgeCache, purgeCacheDirectory, readErrorCodeHeaders, removeAllArguments, removeArgument, removeExceptionListener, removeResponseCodeListener, removeResponseListener, resume, retry, setCacheMode, setCheckSSLCertificates, setChunkedStreamingMode, setContentType, setCookieHeader, setCookiesEnabled, setCookiesEnabledDefault, setDefaultCacheMode, setDefaultFollowRedirects, setDefaultUserAgent, setDestinationFile, setDestinationStorage, setDisposeOnCompletion, setDuplicateSupported, setFailSilently, setFollowRedirects, setHandleErrorCodesInGlobalErrorHandler, setHttpMethod, setInsecure, setKilled, setPaused, setPost, setPriority, setReadRequest, setReadResponseForErrors, setReadResponseForErrorsDefault, setReadTimeout, setRequestBody, setRequestBody, setShowOnInit, setSilentRetryCount, setTimeout, setUrl, setUseNativeCookieStore, setUserAgent, setWriteRequest, shouldAutoCloseResponse, shouldConvertPostToGetOnRedirect, shouldStop, shouldWriteUTFAsGetBytes, validate`

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

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

- ## Constructor Details

  - ### GZConnectionRequest

    public GZConnectionRequest()

- ## Method Details

  - ### equals

    public boolean equals(java.lang.Object o)
    Description copied from class: `ConnectionRequest`
    Overrides:
      `equals` in class `ConnectionRequest`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `ConnectionRequest`

  - ### readHeaders

    protected void readHeaders(java.lang.Object connection) throws java.io.IOException

    Allows reading the headers from the connection by calling the getHeader() method.

    ###### Parameters

    - `connection`: used when invoking getHeader

    ###### Throws

    - `java.io.IOException`: thrown on failure
    Overrides:
      `readHeaders` in class `ConnectionRequest`
    Throws:
      `java.io.IOException`

  - ### readResponse

    protected final void readResponse(java.io.InputStream input) throws java.io.IOException
    Overridden to convert the input stream you should now override readUnzipedResponse()
    Overrides:
      `readResponse` in class `ConnectionRequest`
    Throws:
      `java.io.IOException`

  - ### readUnzipedResponse

    protected void readUnzipedResponse(java.io.InputStream input) throws java.io.IOException

    This method can be overridden instead of readResponse

    ###### Parameters

    - `input`: an input stream that is guaranteed to be deflated
    Throws:
      `java.io.IOException`