Package org.jsoup.helper
Class HttpConnection.Response
- java.lang.Object
-
- org.jsoup.helper.HttpConnection.Base<Connection.Response>
-
- org.jsoup.helper.HttpConnection.Response
-
- All Implemented Interfaces:
Connection.Base<Connection.Response>
,Connection.Response
- Enclosing class:
- HttpConnection
public static class HttpConnection.Response extends HttpConnection.Base<Connection.Response> implements Connection.Response
-
-
Field Summary
Fields Modifier and Type Field Description private java.io.InputStream
bodyStream
private java.nio.ByteBuffer
byteData
private java.lang.String
charset
private java.net.HttpURLConnection
conn
private java.lang.String
contentType
private boolean
executed
private boolean
inputStreamRead
private static java.lang.String
LOCATION
private static int
MAX_REDIRECTS
private int
numRedirects
private Connection.Request
req
private int
statusCode
private java.lang.String
statusMessage
private static java.util.regex.Pattern
xmlContentTypeRxp
-
Fields inherited from class org.jsoup.helper.HttpConnection.Base
cookies, headers, method, url
-
-
Constructor Summary
Constructors Modifier Constructor Description (package private)
Response()
private
Response(HttpConnection.Response previousResponse)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
body()
Get the body of the response as a plain string.byte[]
bodyAsBytes()
Get the body of the response as an array of bytes.java.io.BufferedInputStream
bodyStream()
Get the body of the response as a (buffered) InputStream.Connection.Response
bufferUp()
Read the body of the response into a local buffer, so thatConnection.Response.parse()
may be called repeatedly on the same connection response (otherwise, once the response is read, its InputStream will have been drained and may not be re-read).java.lang.String
charset()
Get the character set name of the response, derived from the content-type header.HttpConnection.Response
charset(java.lang.String charset)
Set / override the response character set.java.lang.String
contentType()
Get the response content type (e.g.private static java.net.HttpURLConnection
createConnection(Connection.Request req)
private static java.util.LinkedHashMap<java.lang.String,java.util.List<java.lang.String>>
createHeaderMap(java.net.HttpURLConnection conn)
(package private) static HttpConnection.Response
execute(Connection.Request req)
(package private) static HttpConnection.Response
execute(Connection.Request req, HttpConnection.Response previousResponse)
private static java.lang.String
getRequestCookieString(Connection.Request req)
Document
parse()
Read and parse the body of the response as a Document.private void
prepareByteData()
(package private) void
processResponseHeaders(java.util.Map<java.lang.String,java.util.List<java.lang.String>> resHeaders)
private void
safeClose()
Call on completion of stream read, to close the body (or error) streamprivate static void
serialiseRequestUrl(Connection.Request req)
private static java.lang.String
setOutputContentType(Connection.Request req)
private void
setupFromConnection(java.net.HttpURLConnection conn, HttpConnection.Response previousResponse)
int
statusCode()
Get the status code of the response.java.lang.String
statusMessage()
Get the status message of the response.private static void
writePost(Connection.Request req, java.io.OutputStream outputStream, java.lang.String bound)
-
Methods inherited from class org.jsoup.helper.HttpConnection.Base
addHeader, cookie, cookie, cookies, hasCookie, hasHeader, hasHeaderWithValue, header, header, headers, headers, method, method, multiHeaders, removeCookie, removeHeader, url, url
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jsoup.Connection.Base
addHeader, cookie, cookie, cookies, hasCookie, hasHeader, hasHeaderWithValue, header, header, headers, headers, method, method, multiHeaders, removeCookie, removeHeader, url, url
-
-
-
-
Field Detail
-
MAX_REDIRECTS
private static final int MAX_REDIRECTS
- See Also:
- Constant Field Values
-
LOCATION
private static final java.lang.String LOCATION
- See Also:
- Constant Field Values
-
statusCode
private int statusCode
-
statusMessage
private java.lang.String statusMessage
-
byteData
private java.nio.ByteBuffer byteData
-
bodyStream
private java.io.InputStream bodyStream
-
conn
private java.net.HttpURLConnection conn
-
charset
private java.lang.String charset
-
contentType
private java.lang.String contentType
-
executed
private boolean executed
-
inputStreamRead
private boolean inputStreamRead
-
numRedirects
private int numRedirects
-
req
private Connection.Request req
-
xmlContentTypeRxp
private static final java.util.regex.Pattern xmlContentTypeRxp
-
-
Constructor Detail
-
Response
Response()
-
Response
private Response(HttpConnection.Response previousResponse) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
execute
static HttpConnection.Response execute(Connection.Request req) throws java.io.IOException
- Throws:
java.io.IOException
-
execute
static HttpConnection.Response execute(Connection.Request req, HttpConnection.Response previousResponse) throws java.io.IOException
- Throws:
java.io.IOException
-
statusCode
public int statusCode()
Description copied from interface:Connection.Response
Get the status code of the response.- Specified by:
statusCode
in interfaceConnection.Response
- Returns:
- status code
-
statusMessage
public java.lang.String statusMessage()
Description copied from interface:Connection.Response
Get the status message of the response.- Specified by:
statusMessage
in interfaceConnection.Response
- Returns:
- status message
-
charset
public java.lang.String charset()
Description copied from interface:Connection.Response
Get the character set name of the response, derived from the content-type header.- Specified by:
charset
in interfaceConnection.Response
- Returns:
- character set name
-
charset
public HttpConnection.Response charset(java.lang.String charset)
Description copied from interface:Connection.Response
Set / override the response character set. When the document body is parsed it will be with this charset.- Specified by:
charset
in interfaceConnection.Response
- Parameters:
charset
- to decode body as- Returns:
- this Response, for chaining
-
contentType
public java.lang.String contentType()
Description copied from interface:Connection.Response
Get the response content type (e.g. "text/html");- Specified by:
contentType
in interfaceConnection.Response
- Returns:
- the response content type
-
parse
public Document parse() throws java.io.IOException
Description copied from interface:Connection.Response
Read and parse the body of the response as a Document. If you intend to parse the same response multiple times, you shouldConnection.Response.bufferUp()
first.- Specified by:
parse
in interfaceConnection.Response
- Returns:
- a parsed Document
- Throws:
java.io.IOException
- on error
-
prepareByteData
private void prepareByteData()
-
body
public java.lang.String body()
Description copied from interface:Connection.Response
Get the body of the response as a plain string.- Specified by:
body
in interfaceConnection.Response
- Returns:
- body
-
bodyAsBytes
public byte[] bodyAsBytes()
Description copied from interface:Connection.Response
Get the body of the response as an array of bytes.- Specified by:
bodyAsBytes
in interfaceConnection.Response
- Returns:
- body bytes
-
bufferUp
public Connection.Response bufferUp()
Description copied from interface:Connection.Response
Read the body of the response into a local buffer, so thatConnection.Response.parse()
may be called repeatedly on the same connection response (otherwise, once the response is read, its InputStream will have been drained and may not be re-read). CallingConnection.Response.body()
orConnection.Response.bodyAsBytes()
has the same effect.- Specified by:
bufferUp
in interfaceConnection.Response
- Returns:
- this response, for chaining
-
bodyStream
public java.io.BufferedInputStream bodyStream()
Description copied from interface:Connection.Response
Get the body of the response as a (buffered) InputStream. You should close the input stream when you're done with it. Other body methods (like bufferUp, body, parse, etc) will not work in conjunction with this method.This method is useful for writing large responses to disk, without buffering them completely into memory first.
- Specified by:
bodyStream
in interfaceConnection.Response
- Returns:
- the response body input stream
-
createConnection
private static java.net.HttpURLConnection createConnection(Connection.Request req) throws java.io.IOException
- Throws:
java.io.IOException
-
safeClose
private void safeClose()
Call on completion of stream read, to close the body (or error) stream
-
setupFromConnection
private void setupFromConnection(java.net.HttpURLConnection conn, HttpConnection.Response previousResponse) throws java.io.IOException
- Throws:
java.io.IOException
-
createHeaderMap
private static java.util.LinkedHashMap<java.lang.String,java.util.List<java.lang.String>> createHeaderMap(java.net.HttpURLConnection conn)
-
processResponseHeaders
void processResponseHeaders(java.util.Map<java.lang.String,java.util.List<java.lang.String>> resHeaders)
-
setOutputContentType
private static java.lang.String setOutputContentType(Connection.Request req)
-
writePost
private static void writePost(Connection.Request req, java.io.OutputStream outputStream, java.lang.String bound) throws java.io.IOException
- Throws:
java.io.IOException
-
getRequestCookieString
private static java.lang.String getRequestCookieString(Connection.Request req)
-
serialiseRequestUrl
private static void serialiseRequestUrl(Connection.Request req) throws java.io.IOException
- Throws:
java.io.IOException
-
-