|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectwinterwell.jtwitter.URLConnectionHttpClient
public class URLConnectionHttpClient
A simple http client that uses the built in URLConnection class.
Provides Twitter-focused error-handling, generating the right
TwitterException. Also has a retry-on-error mode which can help smooth out
Twitter's sometimes intermittent service. See
setRetryOnError(boolean).
| Field Summary | |
|---|---|
protected java.lang.String |
name
|
protected int |
timeout
|
| Constructor Summary | |
|---|---|
URLConnectionHttpClient()
|
|
URLConnectionHttpClient(java.lang.String name,
java.lang.String password)
|
|
| Method Summary | |
|---|---|
boolean |
canAuthenticate()
Whether this client is setup to do authentication when contacting the Twitter server. |
protected static void |
close(java.io.Closeable input)
Close a reader/writer/stream, ignoring any exceptions that result. |
java.net.HttpURLConnection |
connect(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
Lower-level GET method. |
Twitter.IHttpClient |
copy()
|
protected void |
disconnect(java.net.HttpURLConnection connection)
|
java.lang.String |
getHeader(java.lang.String headerName)
Fetch a header from the last http request. |
java.lang.String |
getPage(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
Send an HTTP GET request and return the response body. |
RateLimit |
getRateLimit(Twitter.KRequestType reqType)
|
java.lang.String |
post(java.lang.String uri,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
Send an HTTP POST request and return the response body. |
java.net.HttpURLConnection |
post2_connect(java.lang.String uri,
java.util.Map<java.lang.String,java.lang.String> vars)
Lower-level POST method. |
protected java.lang.String |
post2_getPayload(java.util.Map<java.lang.String,java.lang.String> vars)
|
java.lang.String |
postMultipartForm(java.lang.String url,
java.util.Map<java.lang.String,?> vars)
|
protected void |
processHeaders(java.net.HttpURLConnection connection)
Cache headers for getHeader(String) |
protected void |
setAuthentication(java.net.URLConnection connection,
java.lang.String name,
java.lang.String password)
Set a header for basic authentication login. |
void |
setHtmlImpliesError(boolean htmlImpliesError)
|
void |
setMinRateLimit(int minRateLimit)
Use this to protect your Twitter API rate-limit. |
void |
setRetryOnError(boolean retryOnError)
False by default. |
void |
setTimeout(int millisecs)
Set the timeout for a single get/post request. |
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected java.lang.String name
protected int timeout
| Constructor Detail |
|---|
public URLConnectionHttpClient()
public URLConnectionHttpClient(java.lang.String name,
java.lang.String password)
| Method Detail |
|---|
protected static void close(java.io.Closeable input)
input - Can be nullpublic void setHtmlImpliesError(boolean htmlImpliesError)
htmlImpliesError - default is true. If true, an html response will
be treated as a server error & generate a TwitterException.E50Xpublic boolean canAuthenticate()
Twitter.IHttpClientTwitter_Account.verifyCredentials() if you need to check a
login.
canAuthenticate in interface Twitter.IHttpClient
public java.net.HttpURLConnection connect(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
throws java.io.IOException
Twitter.IHttpClient
connect in interface Twitter.IHttpClientjava.io.IOExceptionpublic Twitter.IHttpClient copy()
copy in interface Twitter.IHttpClientprotected final void disconnect(java.net.HttpURLConnection connection)
public java.lang.String getHeader(java.lang.String headerName)
Twitter.IHttpClient
getHeader in interface Twitter.IHttpClient
public final java.lang.String getPage(java.lang.String url,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
throws TwitterException
Twitter.IHttpClient
getPage in interface Twitter.IHttpClienturl - The uri to fetchvars - get arguments to add to the uriauthenticate - If true, use authentication. The authentication method
used depends on the implementation (basic-auth, OAuth). It
is an error to use true if no authentication details have
been set.
TwitterException - for a variety of reasons
TwitterException.E404 - for resource-does-not-exist errorspublic RateLimit getRateLimit(Twitter.KRequestType reqType)
getRateLimit in interface Twitter.IHttpClientThis is where the Twitter
method is implemented.
public final java.lang.String postMultipartForm(java.lang.String url,
java.util.Map<java.lang.String,?> vars)
throws TwitterException
uri - vars - Can include File values
TwitterException
public final java.lang.String post(java.lang.String uri,
java.util.Map<java.lang.String,java.lang.String> vars,
boolean authenticate)
throws TwitterException
Twitter.IHttpClient
post in interface Twitter.IHttpClienturi - The uri to post to.vars - The form variables to send. These are URL encoded before
sending.authenticate - If true, send user authentication
TwitterException - for a variety of reasons
TwitterException.E404 - for resource-does-not-exist errors
public java.net.HttpURLConnection post2_connect(java.lang.String uri,
java.util.Map<java.lang.String,java.lang.String> vars)
throws java.lang.Exception
Twitter.IHttpClient
post2_connect in interface Twitter.IHttpClientTwitterException
java.lang.Exceptionprotected java.lang.String post2_getPayload(java.util.Map<java.lang.String,java.lang.String> vars)
protected final void processHeaders(java.net.HttpURLConnection connection)
getHeader(String)
connection -
protected void setAuthentication(java.net.URLConnection connection,
java.lang.String name,
java.lang.String password)
public void setMinRateLimit(int minRateLimit)
public void setRetryOnError(boolean retryOnError)
public void setTimeout(int millisecs)
Twitter.IHttpClient
setTimeout in interface Twitter.IHttpClientpublic java.lang.String toString()
toString in class java.lang.Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||