## net.i2p.util
Class SSLEepGet

    java.lang.Object
      net.i2p.util.EepGet
          net.i2p.util.SSLEepGet

    public class SSLEepGet

extends EepGet

HTTPS only, non-proxied only, no retries, no min and max size options, no timeout option Fails on 301 or 302 (doesn't follow redirect) Fails on bad certs (must have a valid cert chain) Self-signed certs or CAs not in the JVM key store must be loaded to be trusted. Since 0.8.2, loads additional trusted CA certs from $I2P/certificates/ and ~/.i2p/certificates/

Since:
  0.7.10
Author:
  zzz

Nested Class Summary
`static class` `SSLEepGet.SSLState` An opaque class for the caller to pass to repeated instantiations of SSLEepGet.

Nested classes/interfaces inherited from class net.i2p.util.EepGet
`EepGet.CLIStatusListener, EepGet.StatusListener`

Field Summary

Fields inherited from class net.i2p.util.EepGet

`_aborted, _actualURL, _alreadyTransferred, _bytesRemaining, _bytesTransferred, _contentType, _context, _currentAttempt, _encodingChunked, _etag, _fetchInactivityTimeout, _headersRead, _keepFetching, _lastModified, _listeners, _log, _notModified, _numRetries, _out, _outputFile, _outputStream, _proxy, _proxyIn, _proxyOut, _redirectLocation, _redirects, _shouldProxy, _transferFailed, _url, CONNECT_TIMEOUT, INACTIVITY_TIMEOUT, MAX_COMPLETE_FAILS, USER_AGENT`

Constructor Summary
`SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url)` A new SSLEepGet with a new SSLState
`SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url, SSLEepGet.SSLState state)`

Method Summary
`protected void` `doFetch(SocketTimeout timeout)` single fetch
`SSLEepGet.SSLState` `getSSLState()` Pass this back to the next SSLEepGet constructor for faster fetches.
`static void` `main(String[] args)` SSLEepGet https://foo/bar or to save cert chain: SSLEepGet -s https://foo/bar
`protected void` `sendRequest(SocketTimeout timeout)`

Methods inherited from class net.i2p.util.EepGet
`addStatusListener, fetch, fetch, fetch, getContentType, getETag, getLastModified, getNotModified, getRequest, readChunkLength, readHeaders, stopFetching, suggestName`

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

Constructor Detail

### SSLEepGet

    public SSLEepGet(I2PAppContext ctx,
                     OutputStream outputStream,
                     String url)

  A new SSLEepGet with a new SSLState

### SSLEepGet

    public SSLEepGet(I2PAppContext ctx,
                     OutputStream outputStream,
                     String url,
                     SSLEepGet.SSLState state)

Parameters:
  `state` - an SSLState retrieved from a previous SSLEepGet with getSSLState(), or null. This makes repeated fetches from the same host MUCH faster, and prevents repeated key store loads even for different hosts.
Since:
  0.8.2

Method Detail

### main

    public static void main(String[] args)

  SSLEepGet https://foo/bar or to save cert chain: SSLEepGet -s https://foo/bar

### getSSLState

    public SSLEepGet.SSLState getSSLState()

  Pass this back to the next SSLEepGet constructor for faster fetches. This may be called either after the constructor or after the fetch.

  Since:
    0.8.2

### doFetch

    protected void doFetch(SocketTimeout timeout)
                    throws IOException

  Description copied from class: `EepGet`
  single fetch

  Overrides:
    `doFetch` in class `EepGet`
  Parameters:
    `timeout` - may be null
  Throws:
    `IOException`

### sendRequest

    protected void sendRequest(SocketTimeout timeout)
                        throws IOException

  Overrides:
    `sendRequest` in class `EepGet`
  Parameters:
    `timeout` - may be null
  Throws:
    `IOException`