public class HttpConnection extends java.lang.Object implements Connection
Connection
.Jsoup.connect(String)
Modifier and Type | Class and Description |
---|---|
static class |
HttpConnection.KeyVal |
static class |
HttpConnection.Request |
static class |
HttpConnection.Response |
Connection.Method
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CONTENT_ENCODING |
static java.lang.String |
DEFAULT_UA
Many users would get caught by not setting a user-agent and therefore getting different responses on their desktop
vs in jsoup, which would otherwise default to
Java . |
Modifier and Type | Method and Description |
---|---|
static Connection |
connect(java.lang.String url) |
static Connection |
connect(java.net.URL url) |
Connection |
cookie(java.lang.String name,
java.lang.String value)
Set a cookie to be sent in the request.
|
Connection |
cookies(java.util.Map<java.lang.String,java.lang.String> cookies)
Adds each of the supplied cookies to the request.
|
Connection |
data(java.util.Collection<Connection.KeyVal> data)
Adds all of the supplied data to the request data parameters
|
Connection |
data(java.util.Map<java.lang.String,java.lang.String> data)
Adds all of the supplied data to the request data parameters
|
Connection |
data(java.lang.String... keyvals)
Add a number of request data parameters.
|
Connection.KeyVal |
data(java.lang.String key)
Get the data KeyVal for this key, if any
|
Connection |
data(java.lang.String key,
java.lang.String value)
Add a request data parameter.
|
Connection |
data(java.lang.String key,
java.lang.String filename,
java.io.InputStream inputStream)
Add an input stream as a request data parameter.
|
Connection |
data(java.lang.String key,
java.lang.String filename,
java.io.InputStream inputStream,
java.lang.String contentType)
Add an input stream as a request data parameter.
|
Connection.Response |
execute()
Execute the request.
|
Connection |
followRedirects(boolean followRedirects)
Configures the connection to (not) follow server redirects.
|
Document |
get()
Execute the request as a GET, and parse the result.
|
Connection |
header(java.lang.String name,
java.lang.String value)
Set a request header.
|
Connection |
headers(java.util.Map<java.lang.String,java.lang.String> headers)
Adds each of the supplied headers to the request.
|
Connection |
ignoreContentType(boolean ignoreContentType)
Ignore the document's Content-Type when parsing the response.
|
Connection |
ignoreHttpErrors(boolean ignoreHttpErrors)
Configures the connection to not throw exceptions when a HTTP error occurs.
|
Connection |
maxBodySize(int bytes)
Set the maximum bytes to read from the (uncompressed) connection into the body, before the connection is closed,
and the input truncated.
|
Connection |
method(Connection.Method method)
Set the request method to use, GET or POST.
|
Connection |
parser(Parser parser)
Provide an alternate parser to use when parsing the response to a Document.
|
Document |
post()
Execute the request as a POST, and parse the result.
|
Connection |
postDataCharset(java.lang.String charset)
Sets the default post data character set for x-www-form-urlencoded post data
|
Connection |
proxy(java.net.Proxy proxy)
Set the proxy to use for this request.
|
Connection |
proxy(java.lang.String host,
int port)
Set the HTTP proxy to use for this request.
|
Connection |
referrer(java.lang.String referrer)
Set the request referrer (aka "referer") header.
|
Connection.Request |
request()
Get the request object associated with this connection
|
Connection |
request(Connection.Request request)
Set the connection's request
|
Connection |
requestBody(java.lang.String body)
Set a POST (or PUT) request body.
|
Connection.Response |
response()
Get the response, once the request has been executed
|
Connection |
response(Connection.Response response)
Set the connection's response
|
Connection |
sslSocketFactory(javax.net.ssl.SSLSocketFactory sslSocketFactory)
Set custom SSL socket factory
|
Connection |
timeout(int millis)
Set the total request timeout duration.
|
Connection |
url(java.lang.String url)
Set the request URL to fetch.
|
Connection |
url(java.net.URL url)
Set the request URL to fetch.
|
Connection |
userAgent(java.lang.String userAgent)
Set the request user-agent header.
|
Connection |
validateTLSCertificates(boolean value)
Disable/enable TLS certificates validation for HTTPS requests.
|
public static final java.lang.String CONTENT_ENCODING
public static final java.lang.String DEFAULT_UA
Java
. So by default, use a desktop UA.public static Connection connect(java.lang.String url)
public static Connection connect(java.net.URL url)
public Connection url(java.net.URL url)
Connection
url
in interface Connection
url
- URL to connect topublic Connection url(java.lang.String url)
Connection
url
in interface Connection
url
- URL to connect topublic Connection proxy(java.net.Proxy proxy)
Connection
null
to disable.proxy
in interface Connection
proxy
- proxy to usepublic Connection proxy(java.lang.String host, int port)
Connection
proxy
in interface Connection
host
- the proxy hostnameport
- the proxy portpublic Connection userAgent(java.lang.String userAgent)
Connection
userAgent
in interface Connection
userAgent
- user-agent to useDEFAULT_UA
public Connection timeout(int millis)
Connection
SocketTimeoutException
will be thrown.
The default timeout is 30 seconds (30,000 millis). A timeout of zero is treated as an infinite timeout.
Note that this timeout specifies the combined maximum duration of the connection time and the time to read the full response.
timeout
in interface Connection
millis
- number of milliseconds (thousandths of a second) before timing out connects or reads.Connection.maxBodySize(int)
public Connection maxBodySize(int bytes)
Connection
maxBodySize
in interface Connection
bytes
- number of bytes to read from the input before truncatingpublic Connection followRedirects(boolean followRedirects)
Connection
followRedirects
in interface Connection
followRedirects
- true if server redirects should be followed.public Connection referrer(java.lang.String referrer)
Connection
referrer
in interface Connection
referrer
- referrer to usepublic Connection method(Connection.Method method)
Connection
method
in interface Connection
method
- HTTP request methodpublic Connection ignoreHttpErrors(boolean ignoreHttpErrors)
Connection
ignoreHttpErrors
in interface Connection
ignoreHttpErrors
- - false (default) if HTTP errors should be ignored.public Connection ignoreContentType(boolean ignoreContentType)
Connection
ignoreContentType
in interface Connection
ignoreContentType
- set to true if you would like the content type ignored on parsing the response into a
Document.public Connection validateTLSCertificates(boolean value)
Connection
By default this is true; all connections over HTTPS perform normal validation of certificates, and will abort requests if the provided certificate does not validate.
Some servers use expired, self-generated certificates; or your JDK may not support SNI hosts. In which case, you may want to enable this setting.
Be careful and understand why you need to disable these validations.
validateTLSCertificates
in interface Connection
value
- if should validate TLS (SSL) certificates. true by default.public Connection data(java.lang.String key, java.lang.String value)
Connection
data
in interface Connection
key
- data keyvalue
- data valuepublic Connection sslSocketFactory(javax.net.ssl.SSLSocketFactory sslSocketFactory)
Connection
sslSocketFactory
in interface Connection
sslSocketFactory
- custom SSL socket factorypublic Connection data(java.lang.String key, java.lang.String filename, java.io.InputStream inputStream)
Connection
data
in interface Connection
key
- data key (form item name)filename
- the name of the file to present to the remove server. Typically just the name, not path,
component.inputStream
- the input stream to upload, that you probably obtained from a FileInputStream
.
You must close the InputStream in a finally
block.if you want to set the uploaded file's mimetype.
public Connection data(java.lang.String key, java.lang.String filename, java.io.InputStream inputStream, java.lang.String contentType)
Connection
data
in interface Connection
key
- data key (form item name)filename
- the name of the file to present to the remove server. Typically just the name, not path,
component.inputStream
- the input stream to upload, that you probably obtained from a FileInputStream
.contentType
- the Content Type (aka mimetype) to specify for this file.
You must close the InputStream in a finally
block.public Connection data(java.util.Map<java.lang.String,java.lang.String> data)
Connection
data
in interface Connection
data
- map of data parameterspublic Connection data(java.lang.String... keyvals)
Connection
.data("name",
"jsoup", "language", "Java", "language", "English");
creates a query string like:
?name=jsoup&language=Java&language=English
data
in interface Connection
keyvals
- a set of key value pairs.public Connection data(java.util.Collection<Connection.KeyVal> data)
Connection
data
in interface Connection
data
- collection of data parameterspublic Connection.KeyVal data(java.lang.String key)
Connection
data
in interface Connection
key
- the data keypublic Connection requestBody(java.lang.String body)
Connection
Jsoup.connect(url)
.requestBody(json)
.header("Content-Type", "application/json")
.post();
If any data key/vals are supplied, they will be sent as URL query params.requestBody
in interface Connection
public Connection header(java.lang.String name, java.lang.String value)
Connection
header
in interface Connection
name
- header namevalue
- header valueConnection.Base.headers()
public Connection headers(java.util.Map<java.lang.String,java.lang.String> headers)
Connection
headers
in interface Connection
headers
- map of headers name -> value pairsConnection.Base.headers()
public Connection cookie(java.lang.String name, java.lang.String value)
Connection
cookie
in interface Connection
name
- name of cookievalue
- value of cookiepublic Connection cookies(java.util.Map<java.lang.String,java.lang.String> cookies)
Connection
cookies
in interface Connection
cookies
- map of cookie name -> value pairspublic Connection parser(Parser parser)
Connection
parser
in interface Connection
parser
- alternate parserpublic Document get() throws java.io.IOException
Connection
get
in interface Connection
java.net.MalformedURLException
- if the request URL is not a HTTP or HTTPS URL, or is otherwise malformedHttpStatusException
- if the response is not OK and HTTP response errors are not ignoredUnsupportedMimeTypeException
- if the response mime type is not supported and those errors are not ignoredjava.net.SocketTimeoutException
- if the connection times outjava.io.IOException
- on errorpublic Document post() throws java.io.IOException
Connection
post
in interface Connection
java.net.MalformedURLException
- if the request URL is not a HTTP or HTTPS URL, or is otherwise malformedHttpStatusException
- if the response is not OK and HTTP response errors are not ignoredUnsupportedMimeTypeException
- if the response mime type is not supported and those errors are not ignoredjava.net.SocketTimeoutException
- if the connection times outjava.io.IOException
- on errorpublic Connection.Response execute() throws java.io.IOException
Connection
execute
in interface Connection
java.net.MalformedURLException
- if the request URL is not a HTTP or HTTPS URL, or is otherwise malformedHttpStatusException
- if the response is not OK and HTTP response errors are not ignoredUnsupportedMimeTypeException
- if the response mime type is not supported and those errors are not ignoredjava.net.SocketTimeoutException
- if the connection times outjava.io.IOException
- on errorpublic Connection.Request request()
Connection
request
in interface Connection
public Connection request(Connection.Request request)
Connection
request
in interface Connection
request
- new request objectpublic Connection.Response response()
Connection
response
in interface Connection
public Connection response(Connection.Response response)
Connection
response
in interface Connection
response
- new responsepublic Connection postDataCharset(java.lang.String charset)
Connection
postDataCharset
in interface Connection
charset
- character set to encode post data