Package net.i2p.util
Class EepHead
- java.lang.Object
-
- net.i2p.util.EepGet
-
- net.i2p.util.EepHead
-
public class EepHead extends EepGet
This is a quick hack to get a working EepHead, primarily for the following usage:EepHead foo = new EepHead(...); if (foo.fetch()) { String lastmod = foo.getLastModified(); if (lastmod != null) { parse the string... ... } }
Other use cases (command line, listeners, etc...) lightly- or un-tested. Note that this follows redirects! This may not be what you want or expect. Writing from scratch rather than extending EepGet would maybe have been less bloated memory-wise. This way gets us redirect handling, among other benefits.- Since:
- 0.7.7
- Author:
- zzz
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.i2p.util.EepGet
EepGet.AUTH_MODE, EepGet.AuthState, EepGet.CLIStatusListener, EepGet.Gunzipper, EepGet.StatusListener
-
-
Field Summary
-
Fields inherited from class net.i2p.util.EepGet
_aborted, _actualURL, _alreadyTransferred, _authState, _bytesRemaining, _bytesTransferred, _contentType, _context, _currentAttempt, _decompressException, _encodingChunked, _etag, _etagOrig, _extraHeaders, _fetchHeaderTimeout, _fetchInactivityTimeout, _fetchTotalTimeout, _isGzippedResponse, _keepFetching, _lastModified, _lastModifiedOrig, _listeners, _log, _notModified, _numRetries, _out, _outputFile, _outputStream, _proxy, _proxyHost, _proxyIn, _proxyOut, _proxyPort, _redirectLocation, _redirects, _responseCode, _responseText, _shouldProxy, _shouldWriteErrorToOutput, _transferFailed, _url, CONNECT_TIMEOUT, INACTIVITY_TIMEOUT, MAX_COMPLETE_FAILS, USER_AGENT
-
-
Constructor Summary
Constructors Constructor Description EepHead(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String url)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doFetch(SocketTimeout timeout)
This reads the response to a single fetch.long
getContentLength()
We don't decrement the variable (unlike in EepGet), so this is validprotected String
getRequest()
static void
main(String[] args)
EepHead [-p 127.0.0.1:4444] [-n #retries] url This doesn't really do much since it doesn't register a listener.protected boolean
shouldReadBody()
Should we read the body of the response?-
Methods inherited from class net.i2p.util.EepGet
addAuthorization, addHeader, addStatusListener, fetch, fetch, fetch, getContentType, getETag, getLastModified, getNotModified, getStatusCode, getStatusText, parseAuthArgs, readChunkLength, readHeaders, sendRequest, setWriteErrorToOutput, stopFetching, suggestName
-
-
-
-
Constructor Detail
-
EepHead
public EepHead(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String url)
-
-
Method Detail
-
main
public static void main(String[] args)
EepHead [-p 127.0.0.1:4444] [-n #retries] url This doesn't really do much since it doesn't register a listener. EepGet doesn't have a method to store and return all the headers, so just print out the ones we have methods for. Turn on logging to use it for a decent test.
-
doFetch
protected void doFetch(SocketTimeout timeout) throws IOException
Description copied from class:EepGet
This reads the response to a single fetch. Call after sendRequest()- Overrides:
doFetch
in classEepGet
- Parameters:
timeout
- may be null as of 0.9.49- Throws:
IOException
-
shouldReadBody
protected boolean shouldReadBody()
Should we read the body of the response?- Overrides:
shouldReadBody
in classEepGet
- Returns:
- false always
- Since:
- 0.9.50
-
getRequest
protected String getRequest() throws IOException
- Overrides:
getRequest
in classEepGet
- Throws:
IOException
-
getContentLength
public long getContentLength()
We don't decrement the variable (unlike in EepGet), so this is valid
-
-