Class I2PSocketEepGet


  • public class I2PSocketEepGet
    extends EepGet
    Fetch a URL using a socket from the supplied I2PSocketManager. Hostname must resolve to an i2p destination - no routing to an outproxy. Does not support response gzip decompression (unlike I2PTunnelHTTPProxy) (yet), but of course there is still gzip at the I2CP layer. This is designed for Java apps such as bittorrent clients that wish to do HTTP fetches and use other protocols on a single set of tunnels. This may provide anonymity benefits over using the shared clients HTTP proxy, preventing inadvertent outproxy usage, reduce resource usage by eliminating a second set of tunnels, and eliminate the requirement to to separately configure the proxy host and port. For additional documentation see the superclass. Supports http://example.i2p/blah Supports http://B32KEY.b32.i2p/blah Supports http://i2p/B64KEY/blah for compatibility with the eepproxy Supports http://B64KEY/blah for as of 0.9.42 Supports http://B64KEY.i2p/blah as of 0.9.42 Warning - does not support /eepproxy/blah, address helpers, http://B64KEY.i2p/blah, or other odd things that may be found in the HTTP proxy.
    Author:
    zzz
    • Method Detail

      • fetch

        public boolean fetch​(long fetchHeaderTimeout,
                             long totalTimeout,
                             long inactivityTimeout)
        We have to override this to close _socket, since we can't use _proxy in super as the I2PSocket.
        Overrides:
        fetch in class EepGet
        Parameters:
        fetchHeaderTimeout - <= 0 for none (proxy will timeout if none, none isn't recommended if no proxy)
        totalTimeout - <= 0 for default none
        inactivityTimeout - <= 0 for default 60 sec
        Returns:
        success
      • sendRequest

        protected void sendRequest​(SocketTimeout timeout)
                            throws IOException
        Look up the address, get a socket from the I2PSocketManager supplied in the constructor, and send the request.
        Overrides:
        sendRequest in class EepGet
        Parameters:
        timeout - ignored
        Throws:
        IOException
      • getRequest

        protected String getRequest()
                             throws IOException
        Guess we have to override this since super doesn't strip the http://host from the GET line which hoses some servers (opentracker) HTTP proxy was kind enough to do this for us
        Overrides:
        getRequest in class EepGet
        Throws:
        IOException