org.htmlparser.http
public class ConnectionManager extends Object
Field Summary | |
---|---|
protected Hashtable | mCookieJar
Cookie storage, a hashtable (by site or host) of vectors of Cookies.
|
protected static Hashtable | mDefaultRequestProperties
Default Request header fields.
|
protected static SimpleDateFormat | mFormat
Cookie expiry date format for parsing. |
protected ConnectionMonitor | mMonitor
The object to be notified prior to and after each connection. |
protected String | mPassword
The user password for accessing the URL. |
protected String | mProxyHost
The proxy server name. |
protected String | mProxyPassword
The proxy user password. |
protected int | mProxyPort
The proxy port number. |
protected String | mProxyUser
The proxy username name. |
protected boolean | mRedirectionProcessingEnabled
Flag determining if redirection processing is being handled manually. |
protected Hashtable | mRequestProperties
Request header fields. |
protected String | mUser
The username name for accessing the URL. |
Constructor Summary | |
---|---|
ConnectionManager()
Create a connection manager. | |
ConnectionManager(Hashtable properties)
Create a connection manager with the given connection properties. |
Method Summary | |
---|---|
void | addCookies(URLConnection connection)
Generate a HTTP cookie header value string from the cookie jar.
|
protected Vector | addCookies(Vector cookies, String path, Vector list)
Add qualified cookies from cookies into list. |
static String | encode(byte[] array)
Encodes a byte array into BASE64 in accordance with
RFC 2045. |
String | fixSpaces(String url)
Turn spaces into %20.
|
protected String | generateCookieProperty(Vector cookies)
Creates the cookie request property value from the list of
valid cookies for the domain. |
boolean | getCookieProcessingEnabled()
Predicate to determine if cookie processing is currently enabled. |
static Hashtable | getDefaultRequestProperties()
Get the current default request header properties.
|
protected String | getDomain(String host)
Get the domain from a host. |
protected String | getLocation(HttpURLConnection http)
Get the Location field if any. |
ConnectionMonitor | getMonitor()
Get the monitoring object, if any. |
String | getPassword()
Get the URL users's password. |
String | getProxyHost()
Get the proxy host name, if any. |
String | getProxyPassword()
Set the proxy user's password. |
int | getProxyPort()
Get the proxy port number. |
String | getProxyUser()
Get the user name for proxy authorization, if any. |
boolean | getRedirectionProcessingEnabled()
Predicate to determine if url redirection processing is currently enabled. |
Hashtable | getRequestProperties()
Get the current request header properties.
|
String | getUser()
Get the user name to access the URL. |
URLConnection | openConnection(URL url)
Opens a connection using the given url. |
URLConnection | openConnection(String string)
Opens a connection based on a given string.
|
void | parseCookies(URLConnection connection)
Check for cookie and parse into cookie jar. |
protected void | saveCookies(Vector list, URLConnection connection)
Save the cookies received in the response header. |
void | setCookie(Cookie cookie, String domain)
Adds a cookie to the cookie jar. |
void | setCookieProcessingEnabled(boolean enable)
Enables and disabled cookie processing. |
static void | setDefaultRequestProperties(Hashtable properties)
Set the default request header properties.
|
void | setMonitor(ConnectionMonitor monitor)
Set the monitoring object. |
void | setPassword(String password)
Set the URL users's password. |
void | setProxyHost(String host)
Set the proxy host to use. |
void | setProxyPassword(String password)
Get the proxy user's password. |
void | setProxyPort(int port)
Set the proxy port number. |
void | setProxyUser(String user)
Set the user name for proxy authorization. |
void | setRedirectionProcessingEnabled(boolean enabled)
Enables or disables manual redirection handling.
|
void | setRequestProperties(Hashtable properties)
Set the current request properties.
|
void | setUser(String user)
Set the user name to access the URL. |
Parameters: properties Name/value pairs to be added to the HTTP request.
The syntax for the header is: cookie = "Cookie:" cookie-version 1*((";" | ",") cookie-value) cookie-value = NAME "=" VALUE [";" path] [";" domain] cookie-version = "$Version" "=" value NAME = attr VALUE = value path = "$Path" "=" value domain = "$Domain" "=" value
Parameters: connection The connection being accessed.
Parameters: cookies The list of cookies to check (may be null). path The path being accessed. list The list of qualified cookies.
Returns: The list of qualified cookies.
Parameters: array The bytes to convert.
Returns: A BASE64 encoded string.
Parameters: url The url containing spaces.
Returns: The URL with spaces as %20 sequences.
Parameters: cookies The list of valid cookies to be encoded in the request.
Returns: A string suitable for inclusion as the value of the "Cookie:" request property.
Returns: true
if cookies are being processed.
Returns: The default set of request header properties that will currently be used.
See Also: mDefaultRequestProperties ConnectionManager
Parameters: host The supposed host name.
Returns: The domain (with the leading dot), or null if the domain cannot be determined.
Parameters: http The connection to get the location from.
Returns: Returns the monitor, or null if none has been assigned.
Returns: Returns the URL password.
Returns: Returns the proxy host.
Returns: Returns the proxy password.
Returns: Returns the proxy port.
Returns: Returns the proxy user,
or null
if no proxy authorization is required.
Returns: true
if redirection is being processed manually.
See Also: ConnectionManager
Returns: The request header properties for this connection manager.
Returns: Returns the username that will be used to access the URL,
or null
if no authorization is required.
Parameters: url The url to open.
Returns: The connection.
Throws: ParserException if an i/o exception occurs accessing the url.
file://localhost
is prepended to a canonical path derived from the string, or a url that
begins with one of the known protocol strings, i.e. http://
.
Embedded spaces are silently converted to %20 sequences.Parameters: string The name of a file or a url.
Returns: The connection.
Throws: ParserException if the string is not a valid url or file.
Parameters: connection The connection to extract cookie information from.
Parameters: list The list of cookies extracted from the response header. connection The connection (used when a cookie has no domain).
Parameters: cookie The cookie to add. domain The domain to use in case the cookie has no domain attribute.
Parameters: enable if true
cookie processing will occur,
else cookie processing will be turned off.
URLConnection
,
i.e. If-Modified-Since is set with setIfModifiedSince(long),
but since the parser transparently opens the connection on behalf
of the developer, these properties are not available before the
connection is fetched. Setting these request header fields affects all
subsequent connections opened by the parser. For more direct control
create a URLConnection
massage it the way you want and
then set it on the parser.From RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1:
5.3 Request Header Fields The request-header fields allow the client to pass additional information about the request, and about the client itself, to the server. These fields act as request modifiers, with semantics equivalent to the parameters on a programming language method invocation. request-header = Accept ; Section 14.1 | Accept-Charset ; Section 14.2 | Accept-Encoding ; Section 14.3 | Accept-Language ; Section 14.4 | Authorization ; Section 14.8 | Expect ; Section 14.20 | From ; Section 14.22 | Host ; Section 14.23 | If-Match ; Section 14.24 | If-Modified-Since ; Section 14.25 | If-None-Match ; Section 14.26 | If-Range ; Section 14.27 | If-Unmodified-Since ; Section 14.28 | Max-Forwards ; Section 14.31 | Proxy-Authorization ; Section 14.34 | Range ; Section 14.35 | Referer ; Section 14.36 | TE ; Section 14.39 | User-Agent ; Section 14.43 Request-header field names can be extended reliably only in combination with a change in the protocol version. However, new or experimental header fields MAY be given the semantics of request- header fields if all parties in the communication recognize them to be request-header fields. Unrecognized header fields are treated as entity-header fields.
Parameters: properties The new set of default request header properties to use. This affects all subsequently created connections.
See Also: mDefaultRequestProperties ConnectionManager
Parameters: monitor The monitor to set.
Parameters: password The password for the URL.
Parameters: host The host to use for proxy access.
Note: You must also set the proxy port
.
Parameters: password The password for the proxy user.
Note: You must also set the proxy user
.
Parameters: port The proxy port.
Note: You must also set the proxy host
.
Parameters: user The proxy user name.
Note: You must also set the proxy password
.
HttpURLConnection
follows redirections
(HTTP response code 3xx) automatically if the
followRedirects
property is true
.
With this flag set the ConnectionMonitor
performs the
redirection processing; The advantage being that cookies (if enabled)
are passed in subsequent requests.Parameters: enabled The new state of the redirectionProcessingEnabled property.
Parameters: properties The new fixed properties.
Parameters: user The user name for accessing the URL.
Note: You must also set the password
.
HTML Parser is an open source library released under LGPL. | |