|
HTML Parser Home Page | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.htmlparser.http.ConnectionManager
public class ConnectionManager
Handles proxies, password protected URLs and request properties including cookies.
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(String string)
Opens a connection based on a given string. |
URLConnection |
openConnection(URL url)
Opens a connection using the given url. |
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static Hashtable mDefaultRequestProperties
protected Hashtable mRequestProperties
protected String mProxyHost
protected int mProxyPort
protected String mProxyUser
protected String mProxyPassword
protected String mUser
protected String mPassword
protected Hashtable mCookieJar
protected ConnectionMonitor mMonitor
protected boolean mRedirectionProcessingEnabled
protected static SimpleDateFormat mFormat
Constructor Detail |
---|
public ConnectionManager()
public ConnectionManager(Hashtable properties)
properties
- Name/value pairs to be added to the HTTP request.Method Detail |
---|
public static Hashtable getDefaultRequestProperties()
mDefaultRequestProperties
,
setRequestProperties(java.util.Hashtable)
public static void setDefaultRequestProperties(Hashtable properties)
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.
properties
- The new set of default request header properties to
use. This affects all subsequently created connections.mDefaultRequestProperties
,
setRequestProperties(java.util.Hashtable)
public Hashtable getRequestProperties()
public void setRequestProperties(Hashtable properties)
setProxyUser(java.lang.String)
and setProxyPassword(java.lang.String)
values or the Authorization property
which is constructed from the setUser(java.lang.String)
and setPassword(java.lang.String)
values. Nor does it replace the
Cookie property which is constructed from the current cookie jar.
properties
- The new fixed properties.public String getProxyHost()
public void setProxyHost(String host)
host
- The host to use for proxy access.
Note: You must also set the proxy port
.public int getProxyPort()
public void setProxyPort(int port)
port
- The proxy port.
Note: You must also set the proxy host
.public String getProxyUser()
null
if no proxy authorization is required.public void setProxyUser(String user)
user
- The proxy user name.
Note: You must also set the proxy password
.public String getProxyPassword()
public void setProxyPassword(String password)
password
- The password for the proxy user.
Note: You must also set the proxy user
.public String getUser()
null
if no authorization is required.public void setUser(String user)
user
- The user name for accessing the URL.
Note: You must also set the password
.public String getPassword()
public void setPassword(String password)
password
- The password for the URL.public boolean getCookieProcessingEnabled()
true
if cookies are being processed.public void setCookieProcessingEnabled(boolean enable)
enable
- if true
cookie processing will occur,
else cookie processing will be turned off.public void setCookie(Cookie cookie, String domain)
cookie
- The cookie to add.domain
- The domain to use in case the cookie has no domain attribute.public ConnectionMonitor getMonitor()
public void setMonitor(ConnectionMonitor monitor)
monitor
- The monitor to set.public boolean getRedirectionProcessingEnabled()
true
if redirection is being processed manually.setRedirectionProcessingEnabled(boolean)
public void setRedirectionProcessingEnabled(boolean enabled)
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.
enabled
- The new state of the redirectionProcessingEnabled property.protected String getLocation(HttpURLConnection http)
http
- The connection to get the location from.public URLConnection openConnection(URL url) throws ParserException
url
- The url to open.
ParserException
- if an i/o exception occurs accessing the url.public static final String encode(byte[] array)
array
- The bytes to convert.
public String fixSpaces(String url)
url
- The url containing spaces.
public URLConnection openConnection(String string) throws ParserException
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.
string
- The name of a file or a url.
ParserException
- if the string is not a valid url or file.public void addCookies(URLConnection connection)
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
connection
- The connection being accessed.protected Vector addCookies(Vector cookies, String path, Vector list)
cookies
- The list of cookies to check (may be null).path
- The path being accessed.list
- The list of qualified cookies.
protected String getDomain(String host)
host
- The supposed host name.
protected String generateCookieProperty(Vector cookies)
cookies
- The list of valid cookies to be encoded in the request.
public void parseCookies(URLConnection connection)
connection
- The connection to extract cookie information from.protected void saveCookies(Vector list, URLConnection connection)
list
- The list of cookies extracted from the response header.connection
- The connection (used when a cookie has no domain).
|
© 2006 Derrick Oswald Sep 17, 2006
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
HTML Parser is an open source library released under Common Public License. |