public static class HttpConnection.Response extends HttpConnection.Base<Connection.Response> implements Connection.Response
Modifier and Type | Field and Description |
---|---|
private java.io.InputStream |
bodyStream |
private java.nio.ByteBuffer |
byteData |
private java.lang.String |
charset |
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 static javax.net.ssl.SSLSocketFactory |
sslSocketFactory |
private int |
statusCode |
private java.lang.String |
statusMessage |
private static java.util.regex.Pattern |
xmlContentTypeRxp |
cookies, headers, method, url
Modifier | Constructor and Description |
---|---|
(package private) |
Response() |
private |
Response(HttpConnection.Response previousResponse) |
Modifier and Type | Method and 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 that
Connection.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 javax.net.ssl.HostnameVerifier |
getInsecureVerifier()
Instantiate Hostname Verifier that does nothing.
|
private static java.lang.String |
getRequestCookieString(Connection.Request req) |
private static void |
initUnSecureTSL()
Initialise Trust manager that does not validate certificate chains and
add it to current SSLContext.
|
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) stream
|
private static void |
serialiseRequestUrl(Connection.Request req) |
private static java.lang.String |
setOutputContentType(Connection.Request req) |
private void |
setupFromConnection(java.net.HttpURLConnection conn,
Connection.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) |
addHeader, cookie, cookie, cookies, hasCookie, hasHeader, hasHeaderWithValue, header, header, headers, headers, method, method, multiHeaders, removeCookie, removeHeader, url, url
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addHeader, cookie, cookie, cookies, hasCookie, hasHeader, hasHeaderWithValue, header, header, headers, headers, method, method, multiHeaders, removeCookie, removeHeader, url, url
private static final int MAX_REDIRECTS
private static javax.net.ssl.SSLSocketFactory sslSocketFactory
private static final java.lang.String LOCATION
private int statusCode
private java.lang.String statusMessage
private java.nio.ByteBuffer byteData
private java.io.InputStream bodyStream
private java.lang.String charset
private java.lang.String contentType
private boolean executed
private boolean inputStreamRead
private int numRedirects
private Connection.Request req
private static final java.util.regex.Pattern xmlContentTypeRxp
Response()
private Response(HttpConnection.Response previousResponse) throws java.io.IOException
java.io.IOException
static HttpConnection.Response execute(Connection.Request req) throws java.io.IOException
java.io.IOException
static HttpConnection.Response execute(Connection.Request req, HttpConnection.Response previousResponse) throws java.io.IOException
java.io.IOException
public int statusCode()
Connection.Response
statusCode
in interface Connection.Response
public java.lang.String statusMessage()
Connection.Response
statusMessage
in interface Connection.Response
public java.lang.String charset()
Connection.Response
charset
in interface Connection.Response
public HttpConnection.Response charset(java.lang.String charset)
Connection.Response
charset
in interface Connection.Response
charset
- to decode body aspublic java.lang.String contentType()
Connection.Response
contentType
in interface Connection.Response
public Document parse() throws java.io.IOException
Connection.Response
Connection.Response.bufferUp()
first.parse
in interface Connection.Response
java.io.IOException
- on errorprivate void prepareByteData()
public java.lang.String body()
Connection.Response
body
in interface Connection.Response
public byte[] bodyAsBytes()
Connection.Response
bodyAsBytes
in interface Connection.Response
public Connection.Response bufferUp()
Connection.Response
Connection.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). Calling Connection.Response.body()
or Connection.Response.bodyAsBytes()
has the same effect.bufferUp
in interface Connection.Response
public java.io.BufferedInputStream bodyStream()
Connection.Response
This method is useful for writing large responses to disk, without buffering them completely into memory first.
bodyStream
in interface Connection.Response
private static java.net.HttpURLConnection createConnection(Connection.Request req) throws java.io.IOException
java.io.IOException
private void safeClose()
private static javax.net.ssl.HostnameVerifier getInsecureVerifier()
private static void initUnSecureTSL() throws java.io.IOException
java.io.IOException
- on SSL init errorsprivate void setupFromConnection(java.net.HttpURLConnection conn, Connection.Response previousResponse) throws java.io.IOException
java.io.IOException
private static java.util.LinkedHashMap<java.lang.String,java.util.List<java.lang.String>> createHeaderMap(java.net.HttpURLConnection conn)
void processResponseHeaders(java.util.Map<java.lang.String,java.util.List<java.lang.String>> resHeaders)
private static java.lang.String setOutputContentType(Connection.Request req)
private static void writePost(Connection.Request req, java.io.OutputStream outputStream, java.lang.String bound) throws java.io.IOException
java.io.IOException
private static java.lang.String getRequestCookieString(Connection.Request req)
private static void serialiseRequestUrl(Connection.Request req) throws java.io.IOException
java.io.IOException