@Override public boolean isDisposingResponseStream() { return m_realReader == null ? false : m_realReader.isDisposingResponseStream(); } };
@Override public ConnectionParameter clone() { return (ConnectionParameter) super.clone(); } }
/** * Performs the service request "CloseSession". * * @throws ClientException if something went wrong during the request * @throws org.n52.security.common.artifact.ServiceException if the response is of MIME type * <code>application/vnd.ogc.se_xml */ public void closeSession(String version, String sessionID) throws ClientException, ServiceException { HTTPRequest httpRequest = httpClientFactory.create(getWssURLString()).get(); httpRequest.parameter("VERSION", version, "SESSIONID", sessionID, "SERVICE", "WSS", "REQUEST", "CloseSession"); HTTPResponse<InputStream> httpResponse = httpRequest.asStream().start(); if (httpResponse.isError()) { LOG.error("", httpResponse.getError()); throw new ClientException("I/O exception during CLOSESESSION request to Security Service:\n" + httpResponse.getStatus().getCode() + ": " + ((httpResponse.getError() != null) ? httpResponse.getError().getMessage() : " no exception available")); } }
private <T> T get(String sessionID, String action, Class<T> expectedResponse) { HTTPClient client = m_clientFactory.create(m_sessionServiceUrl); HTTPRequest request; if (action != null) { request = client.get(sessionID, action); } else { request = client.get(sessionID); } HTTPResponse<T> response = request.as(expectedResponse).start(); if (response.isError()) { throw new InvalidSessionIDException(sessionID, response.getError()); } return response.getContent(); }
private <T> String logResponseContent(HTTPResponseAdapter<T> response, InputStream input) { try { input.reset(); input = new ContentEncodingStreamFactory().createFor(input, response.getHeaderValue(HTTPHeader.CONTENT_ENCODING.getName())); String body = new StringHTTPContentReader().readRawResponse(response, input); LOG.warn("error [{}] during reading http content of url ({}): <{}>", response.getStatus() != null ? response.getStatus().getCode() : -1, response.getEndpoint(), body); return body; } catch (Exception ex) { // ignore return ""; } }
private boolean isInvalidResponse(HTTPResponse<InputStream> responseStream) { return responseStream.getContent() == null || responseStream.getContentType() == null || responseStream.getContentType().startsWith("application/vnd.ogc.se_xml"); }
@Override public T readRawResponse(HTTPResponse<?> response, InputStream rawStream) throws Exception { String contentType = response.getContentType(); m_realReader = m_contentTransformerResolver.resolveReader(targetClass, genericType, new ContentType(contentType)); if (m_realReader == null) { throw new IllegalStateException("no reader registered for mimetype <" + contentType + "> and targetClass <" + targetClass + "> and genericType <" + genericType + ">"); } return m_realReader.readRawResponse(response, rawStream); }
private InputStream openInputStream(HttpURLConnection urlcon, HTTPConnectionParameter connectionParameter) throws IOException { InputStream errstream = urlcon.getErrorStream(); InputStream in = errstream == null ? urlcon.getInputStream() : errstream; if (connectionParameter.isUseContentEncoding()) { in = new ContentEncodingStreamFactory().createFor(in, urlcon.getHeaderField(HTTPHeader.CONTENT_ENCODING.getName())); } return in; }
protected <T> HTTPResponseAdapter<T> createResponseAdapter( String endpoint, int code, KvPCollection headers) throws IOException { return new HTTPResponseAdapter<T>( endpoint, HTTPCode.createByCode(code), headers); }
@Override public HTTPPreparedRequest<T> connectTimeoutInSec(int connectTimeoutInSec) { m_connectionParameter.setConnectTimeoutInSec(connectTimeoutInSec); return this; }
@Override public HTTPPreparedRequest<T> readTimeoutInSec(int readTimeoutInSec) { m_connectionParameter.setReadTimeoutInSec(readTimeoutInSec); return this; }
@Override public HTTPPreparedRequest<T> followRedirects(boolean followRedirects) { m_connectionParameter.setFollowRedirects(followRedirects); return this; }
@Override public HTTPPreparedRequest<T> useContentEncoding(boolean useContentEncoding) { m_connectionParameter.setUseContentEncoding(useContentEncoding); return this; }
@Override public HTTPPreparedRequest<T> sslHostnameVerifier(HostnameVerifier sslHostnameVerifier) { m_connectionParameter.setSSLHostnameVerifier(sslHostnameVerifier); return this; } }
@Override public HTTPPreparedRequest<T> allowChunking(boolean allowChunking) { m_connectionParameter.setAllowChunkedRequestContent(allowChunking); return this; }
@Override public HTTPPreparedRequest<T> sslContext(SSLContext sslContext) { m_connectionParameter.setSSLContext(sslContext); return this; }