List of usage examples for org.apache.commons.httpclient HostConfiguration HostConfiguration
public HostConfiguration()
From source file:org.openmicroscopy.shoola.svc.transport.BasicChannel.java
/** * Creates a <code>HttpClient</code> to communicate. * @see HttpChannel#getCommunicationLink() *///from w w w. java2 s. c o m protected HttpClient getCommunicationLink() { HostConfiguration cfg = new HostConfiguration(); cfg.setHost(serverURL); String proxyHost = System.getProperty(HttpChannel.PROXY_HOST); String proxyPort = System.getProperty(HttpChannel.PROXY_PORT); if (proxyHost != null && proxyPort != null) { int port = Integer.parseInt(proxyPort); cfg.setProxy(proxyHost, port); } HttpClient channel = new HttpClient(); channel.setHostConfiguration(cfg); HttpClientParams params = new HttpClientParams(); params.setConnectionManagerTimeout(connTimeout); channel.setParams(params); return channel; }
From source file:org.opensaml.ws.soap.client.http.HttpClientBuilder.java
/** * Builds an HTTP client with the given settings. Settings are NOT reset to their default values after a client has * been created.//from ww w . j a va2 s . c o m * * @return the created client. */ public HttpClient buildClient() { if (httpsProtocolSocketFactory != null) { Protocol.registerProtocol("https", new Protocol("https", httpsProtocolSocketFactory, 443)); } HttpClientParams clientParams = new HttpClientParams(); clientParams.setAuthenticationPreemptive(isPreemptiveAuthentication()); clientParams.setContentCharset(getContentCharSet()); clientParams.setParameter(HttpClientParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(connectionRetryAttempts, false)); HttpConnectionManagerParams connMgrParams = new HttpConnectionManagerParams(); connMgrParams.setConnectionTimeout(getConnectionTimeout()); connMgrParams.setDefaultMaxConnectionsPerHost(getMaxConnectionsPerHost()); connMgrParams.setMaxTotalConnections(getMaxTotalConnections()); connMgrParams.setReceiveBufferSize(getReceiveBufferSize()); connMgrParams.setSendBufferSize(getSendBufferSize()); connMgrParams.setTcpNoDelay(isTcpNoDelay()); MultiThreadedHttpConnectionManager connMgr = new MultiThreadedHttpConnectionManager(); connMgr.setParams(connMgrParams); HttpClient httpClient = new HttpClient(clientParams, connMgr); if (proxyHost != null) { HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setProxy(proxyHost, proxyPort); httpClient.setHostConfiguration(hostConfig); if (proxyUsername != null) { AuthScope proxyAuthScope = new AuthScope(proxyHost, proxyPort); UsernamePasswordCredentials proxyCredentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword); httpClient.getState().setProxyCredentials(proxyAuthScope, proxyCredentials); } } return httpClient; }
From source file:org.opentides.util.UrlUtil.java
/** * Returns the HTML code of the original engine. Takes the URL to connect to * the engine. Also takes encoding type that overrides default if not null * "UTF8" is typical encoding type// w ww . j ava2 s. c o m * * @param queryURL * - URL of engine to retrieve * @param request * - request object * @param param * - additional parameters * - Valid parameters are: * - methodName - Either "POST" or "GET". Default is "POST" * - forwardCookie - if true, will forward cookies found on request object * - IPAddress - if specified, this IP will be used for the request * */ public static final UrlResponseObject getPage(final String queryURL, final HttpServletRequest request, final Map<String, Object> param) { // determine if get or post method HttpMethodBase httpMethodBase; Boolean forwardCookie = false; InetAddress IPAddress = null; if (param != null) { if (param.get("forwardCookie") != null) forwardCookie = (Boolean) param.get("forwardCookie"); if (param.get("IPAddress") != null) { String IPString = (String) param.get("IPAddress"); if (!StringUtil.isEmpty(IPString)) { IPAddress = convertIPString(IPString); } } } if (param != null && "GET".equals((String) param.get("methodName"))) { httpMethodBase = new GetMethod(queryURL); } else { httpMethodBase = new PostMethod(queryURL); } try { // declare the connection objects HttpClient client = new HttpClient(); HostConfiguration hostConfig = new HostConfiguration(); String userAgent = request.getHeader("User-Agent"); // for debugging if (_log.isDebugEnabled()) _log.debug("Retrieving page from " + queryURL); // initialize the connection settings client.getHttpConnectionManager().getParams().setConnectionTimeout(CONNECTION_TIMEOUT); client.getParams().setBooleanParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS, true); httpMethodBase.addRequestHeader("accept", "*/*"); httpMethodBase.addRequestHeader("accept-language", "en-us"); httpMethodBase.addRequestHeader("user-agent", userAgent); if (forwardCookie) { // get cookies from request Cookie[] cookies = request.getCookies(); String cookieString = ""; for (Cookie c : cookies) { cookieString += c.getName() + "=" + c.getValue() + "; "; } // forward cookies to httpMethod httpMethodBase.setRequestHeader("Cookie", cookieString); } if (IPAddress != null) { hostConfig.setLocalAddress(IPAddress); } // Setup for 3 retry httpMethodBase.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // now let's retrieve the data client.executeMethod(hostConfig, httpMethodBase); // Read the response body. UrlResponseObject response = new UrlResponseObject(); response.setResponseBody(httpMethodBase.getResponseBody()); Header contentType = httpMethodBase.getResponseHeader("Content-Type"); if (contentType != null) response.setResponseType(contentType.getValue()); else response.setResponseType(Widget.TYPE_HTML); return response; } catch (Exception ex) { _log.error("Failed to request from URL: [" + queryURL + "]", ex); return null; } finally { try { httpMethodBase.releaseConnection(); } catch (Exception ignored) { } } }
From source file:org.opentides.util.WidgetUtil.java
/** * Returns the HTML code of the original engine. Takes the URL to connect to * the engine. Also takes encoding type that overrides default if not null * "UTF8" is typical encoding type/* w ww. ja va 2 s . co m*/ * * @param queryURL * - URL of engine to retrieve * @param request * - request object * @param param * - additional parameters * - Valid parameters are: * - methodName - Either "POST" or "GET". Default is "POST" * - forwardCookie - if true, will forward cookies found on request object * - IPAddress - if specified, this IP will be used for the request * */ public static final UrlResponseObject getPage(final String queryURL, final HttpServletRequest request, final Map<String, Object> param) { // determine if get or post method HttpMethodBase httpMethodBase; Boolean forwardCookie = false; InetAddress IPAddress = null; if (param != null) { if (param.get("forwardCookie") != null) forwardCookie = (Boolean) param.get("forwardCookie"); if (param.get("IPAddress") != null) { String IPString = (String) param.get("IPAddress"); if (!StringUtil.isEmpty(IPString)) { IPAddress = UrlUtil.convertIPString(IPString); } } } if (param != null && "GET".equals((String) param.get("methodName"))) { httpMethodBase = new GetMethod(queryURL); } else { httpMethodBase = new PostMethod(queryURL); } try { // declare the connection objects HttpClient client = new HttpClient(); HostConfiguration hostConfig = new HostConfiguration(); String userAgent = request.getHeader("User-Agent"); // for debugging if (_log.isDebugEnabled()) _log.debug("Retrieving page from " + queryURL); // initialize the connection settings client.getHttpConnectionManager().getParams().setConnectionTimeout(CONNECTION_TIMEOUT); client.getParams().setBooleanParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS, true); httpMethodBase.addRequestHeader("accept", "*/*"); httpMethodBase.addRequestHeader("accept-language", "en-us"); httpMethodBase.addRequestHeader("user-agent", userAgent); if (forwardCookie) { // get cookies from request Cookie[] cookies = request.getCookies(); String cookieString = ""; for (Cookie c : cookies) { cookieString += c.getName() + "=" + c.getValue() + "; "; } // forward cookies to httpMethod httpMethodBase.setRequestHeader("Cookie", cookieString); } if (IPAddress != null) { hostConfig.setLocalAddress(IPAddress); } // Setup for 3 retry httpMethodBase.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // now let's retrieve the data client.executeMethod(hostConfig, httpMethodBase); // Read the response body. UrlResponseObject response = new UrlResponseObject(); response.setResponseBody(httpMethodBase.getResponseBody()); Header contentType = httpMethodBase.getResponseHeader("Content-Type"); if (contentType != null) response.setResponseType(contentType.getValue()); else response.setResponseType("html"); return response; } catch (Exception ex) { _log.error("Failed to request from URL: [" + queryURL + "]", ex); return null; } finally { try { httpMethodBase.releaseConnection(); } catch (Exception ignored) { } } }
From source file:org.osaf.caldav4j.BaseTestCase.java
public HostConfiguration createHostConfiguration() { HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setHost(getCalDAVServerHost(), getCalDAVServerPort(), getCalDavSeverProtocol()); return hostConfig; }
From source file:org.osaf.caldav4j.BaseTestCase.java
public static HostConfiguration createHostConfiguration(CaldavCredential caldavCredential) { HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setHost(caldavCredential.host, caldavCredential.port, caldavCredential.protocol); return hostConfig; }
From source file:org.parosproxy.paros.network.HttpSender.java
public int executeMethod(HttpMethod method, HttpState state) throws IOException { int responseCode = -1; String hostName;/* ww w . j av a2 s .co m*/ hostName = method.getURI().getHost(); method.setDoAuthentication(true); HostConfiguration hc = null; HttpClient requestClient; if (param.isUseProxy(hostName)) { requestClient = clientViaProxy; } else { // ZAP: use custom client on upgrade connection and on event-source data type Header connectionHeader = method.getRequestHeader("connection"); boolean isUpgrade = connectionHeader != null && connectionHeader.getValue().toLowerCase().contains("upgrade"); // ZAP: try to apply original handling of ParosProxy requestClient = client; if (isUpgrade) { // Unless upgrade, when using another client that allows us to expose the socket // connection. requestClient = new HttpClient(new ZapHttpConnectionManager()); } } if (this.initiator == CHECK_FOR_UPDATES_INITIATOR) { // Use the 'strict' SSLConnector, ie one that performs all the usual cert checks // The 'standard' one 'trusts' everything // This is to ensure that all 'check-for update' calls are made to the expected https urls // without this is would be possible to intercept and change the response which could result // in the user downloading and installing a malicious add-on hc = new HostConfiguration() { @Override public synchronized void setHost(URI uri) { try { setHost(new HttpHost(uri.getHost(), uri.getPort(), getProtocol())); } catch (URIException e) { throw new IllegalArgumentException(e.toString()); } }; }; hc.setHost(hostName, method.getURI().getPort(), new Protocol("https", (ProtocolSocketFactory) new SSLConnector(false), 443)); if (param.isUseProxy(hostName)) { hc.setProxyHost(new ProxyHost(param.getProxyChainName(), param.getProxyChainPort())); if (param.isUseProxyChainAuth()) { requestClient.getState().setProxyCredentials(getAuthScope(param), getNTCredentials(param)); } } } // ZAP: Check if a custom state is being used if (state != null) { // Make sure cookies are enabled method.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); } responseCode = requestClient.executeMethod(hc, method, state); return responseCode; }
From source file:org.pentaho.di.baserver.utils.web.HttpConnectionHelper.java
public Response callHttp(String url, Map<String, String> queryParameters, String httpMethod, String user, String password) throws IOException, KettleStepException { // used for calculating the responseTime long startTime = System.currentTimeMillis(); HttpClient httpclient = getHttpClient(); HttpMethod method = getHttpMethod(url, queryParameters, httpMethod); httpclient.getParams().setAuthenticationPreemptive(true); Credentials credentials = getCredentials(user, password); httpclient.getState().setCredentials(AuthScope.ANY, credentials); HostConfiguration hostConfiguration = new HostConfiguration(); int status;//from w ww .j a v a2 s .co m try { status = httpclient.executeMethod(hostConfiguration, method); } catch (IllegalArgumentException ex) { status = -1; } Response response = new Response(); if (status != -1) { String body; String encoding = ""; Header contentTypeHeader = method.getResponseHeader("Content-Type"); if (contentTypeHeader != null) { String contentType = contentTypeHeader.getValue(); if (contentType != null && contentType.contains("charset")) { encoding = contentType.replaceFirst("^.*;\\s*charset\\s*=\\s*", "").replace("\"", "").trim(); } } // get the response body = getContent(method, encoding); // Get response time long responseTime = System.currentTimeMillis() - startTime; response.setStatusCode(status); response.setResult(body); response.setResponseTime(responseTime); } return response; }
From source file:org.pentaho.di.trans.steps.http.HTTP.java
private Object[] callHttpService(RowMetaInterface rowMeta, Object[] rowData) throws KettleException { String url = determineUrl(rowMeta, rowData); try {/*from w w w. j a v a 2 s.c o m*/ if (isDetailed()) { logDetailed(BaseMessages.getString(PKG, "HTTP.Log.Connecting", url)); } // Prepare HTTP get // HttpClient httpclient = SlaveConnectionManager.getInstance().createHttpClient(); HttpMethod method = new GetMethod(url); // Set timeout if (data.realConnectionTimeout > -1) { httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(data.realConnectionTimeout); } if (data.realSocketTimeout > -1) { httpclient.getHttpConnectionManager().getParams().setSoTimeout(data.realSocketTimeout); } if (!Const.isEmpty(data.realHttpLogin)) { httpclient.getParams().setAuthenticationPreemptive(true); Credentials defaultcreds = new UsernamePasswordCredentials(data.realHttpLogin, data.realHttpPassword); httpclient.getState().setCredentials(AuthScope.ANY, defaultcreds); } HostConfiguration hostConfiguration = new HostConfiguration(); if (!Const.isEmpty(data.realProxyHost)) { hostConfiguration.setProxy(data.realProxyHost, data.realProxyPort); } // Add Custom HTTP headers if (data.useHeaderParameters) { for (int i = 0; i < data.header_parameters_nrs.length; i++) { method.addRequestHeader(data.headerParameters[i].getName(), data.inputRowMeta.getString(rowData, data.header_parameters_nrs[i])); if (isDebug()) { log.logDebug(BaseMessages.getString(PKG, "HTTPDialog.Log.HeaderValue", data.headerParameters[i].getName(), data.inputRowMeta.getString(rowData, data.header_parameters_nrs[i]))); } } } InputStreamReader inputStreamReader = null; Object[] newRow = null; if (rowData != null) { newRow = rowData.clone(); } // Execute request // try { // used for calculating the responseTime long startTime = System.currentTimeMillis(); int statusCode = httpclient.executeMethod(hostConfiguration, method); // calculate the responseTime long responseTime = System.currentTimeMillis() - startTime; if (log.isDetailed()) { log.logDetailed(BaseMessages.getString(PKG, "HTTP.Log.ResponseTime", responseTime, url)); } String body = null; // The status code if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTP.Log.ResponseStatusCode", "" + statusCode)); } if (statusCode != -1) { if (statusCode == 204) { body = ""; } else { // if the response is not 401: HTTP Authentication required if (statusCode != 401) { // guess encoding // String encoding = meta.getEncoding(); // Try to determine the encoding from the Content-Type value // if (Const.isEmpty(encoding)) { String contentType = method.getResponseHeader("Content-Type").getValue(); if (contentType != null && contentType.contains("charset")) { encoding = contentType.replaceFirst("^.*;\\s*charset\\s*=\\s*", "") .replace("\"", "").trim(); } } if (isDebug()) { log.logDebug(toString(), BaseMessages.getString(PKG, "HTTP.Log.ResponseHeaderEncoding", encoding)); } // the response if (!Const.isEmpty(encoding)) { inputStreamReader = new InputStreamReader(method.getResponseBodyAsStream(), encoding); } else { inputStreamReader = new InputStreamReader(method.getResponseBodyAsStream()); } StringBuffer bodyBuffer = new StringBuffer(); int c; while ((c = inputStreamReader.read()) != -1) { bodyBuffer.append((char) c); } inputStreamReader.close(); body = bodyBuffer.toString(); if (isDebug()) { logDebug("Response body: " + body); } } else { // the status is a 401 throw new KettleStepException( BaseMessages.getString(PKG, "HTTP.Exception.Authentication", data.realUrl)); } } } int returnFieldsOffset = rowMeta.size(); if (!Const.isEmpty(meta.getFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, body); returnFieldsOffset++; } if (!Const.isEmpty(meta.getResultCodeFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, new Long(statusCode)); returnFieldsOffset++; } if (!Const.isEmpty(meta.getResponseTimeFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, new Long(responseTime)); } } finally { if (inputStreamReader != null) { inputStreamReader.close(); } // Release current connection to the connection pool once you are done method.releaseConnection(); if (data.realcloseIdleConnectionsTime > -1) { httpclient.getHttpConnectionManager().closeIdleConnections(data.realcloseIdleConnectionsTime); } } return newRow; } catch (UnknownHostException uhe) { throw new KettleException( BaseMessages.getString(PKG, "HTTP.Error.UnknownHostException", uhe.getMessage())); } catch (Exception e) { throw new KettleException(BaseMessages.getString(PKG, "HTTP.Log.UnableGetResult", url), e); } }
From source file:org.pentaho.di.trans.steps.httppost.HTTPPOST.java
private Object[] callHTTPPOST(Object[] rowData) throws KettleException { // get dynamic url ? if (meta.isUrlInField()) { data.realUrl = data.inputRowMeta.getString(rowData, data.indexOfUrlField); }/*from www. j av a 2 s . c o m*/ FileInputStream fis = null; try { if (isDetailed()) { logDetailed(BaseMessages.getString(PKG, "HTTPPOST.Log.ConnectingToURL", data.realUrl)); } // Prepare HTTP POST // HttpClient HTTPPOSTclient = SlaveConnectionManager.getInstance().createHttpClient(); PostMethod post = new PostMethod(data.realUrl); // post.setFollowRedirects(false); // Set timeout if (data.realConnectionTimeout > -1) { HTTPPOSTclient.getHttpConnectionManager().getParams() .setConnectionTimeout(data.realConnectionTimeout); } if (data.realSocketTimeout > -1) { HTTPPOSTclient.getHttpConnectionManager().getParams().setSoTimeout(data.realSocketTimeout); } if (!Const.isEmpty(data.realHttpLogin)) { HTTPPOSTclient.getParams().setAuthenticationPreemptive(true); Credentials defaultcreds = new UsernamePasswordCredentials(data.realHttpLogin, data.realHttpPassword); HTTPPOSTclient.getState().setCredentials(AuthScope.ANY, defaultcreds); } HostConfiguration hostConfiguration = new HostConfiguration(); if (!Const.isEmpty(data.realProxyHost)) { hostConfiguration.setProxy(data.realProxyHost, data.realProxyPort); } // Specify content type and encoding // If content encoding is not explicitly specified // ISO-8859-1 is assumed by the POSTMethod if (!data.contentTypeHeaderOverwrite) { // can be overwritten now if (Const.isEmpty(data.realEncoding)) { post.setRequestHeader(CONTENT_TYPE, CONTENT_TYPE_TEXT_XML); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.HeaderValue", CONTENT_TYPE, CONTENT_TYPE_TEXT_XML)); } } else { post.setRequestHeader(CONTENT_TYPE, CONTENT_TYPE_TEXT_XML + "; " + data.realEncoding); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.HeaderValue", CONTENT_TYPE, CONTENT_TYPE_TEXT_XML + "; " + data.realEncoding)); } } } // HEADER PARAMETERS if (data.useHeaderParameters) { // set header parameters that we want to send for (int i = 0; i < data.header_parameters_nrs.length; i++) { post.addRequestHeader(data.headerParameters[i].getName(), data.inputRowMeta.getString(rowData, data.header_parameters_nrs[i])); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.HeaderValue", data.headerParameters[i].getName(), data.inputRowMeta.getString(rowData, data.header_parameters_nrs[i]))); } } } // BODY PARAMETERS if (data.useBodyParameters) { // set body parameters that we want to send for (int i = 0; i < data.body_parameters_nrs.length; i++) { data.bodyParameters[i] .setValue(data.inputRowMeta.getString(rowData, data.body_parameters_nrs[i])); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.BodyValue", data.bodyParameters[i].getName(), data.inputRowMeta.getString(rowData, data.body_parameters_nrs[i]))); } } post.setRequestBody(data.bodyParameters); } // QUERY PARAMETERS if (data.useQueryParameters) { for (int i = 0; i < data.query_parameters_nrs.length; i++) { data.queryParameters[i] .setValue(data.inputRowMeta.getString(rowData, data.query_parameters_nrs[i])); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.QueryValue", data.queryParameters[i].getName(), data.inputRowMeta.getString(rowData, data.query_parameters_nrs[i]))); } } post.setQueryString(data.queryParameters); } // Set request entity? if (data.indexOfRequestEntity >= 0) { String tmp = data.inputRowMeta.getString(rowData, data.indexOfRequestEntity); // Request content will be retrieved directly // from the input stream // Per default, the request content needs to be buffered // in order to determine its length. // Request body buffering can be avoided when // content length is explicitly specified if (meta.isPostAFile()) { File input = new File(tmp); fis = new FileInputStream(input); post.setRequestEntity(new InputStreamRequestEntity(fis, input.length())); } else { if ((data.realEncoding != null) && (data.realEncoding.length() > 0)) { post.setRequestEntity(new InputStreamRequestEntity( new ByteArrayInputStream(tmp.getBytes(data.realEncoding)), tmp.length())); } else { post.setRequestEntity(new InputStreamRequestEntity(new ByteArrayInputStream(tmp.getBytes()), tmp.length())); } } } // Execute request // InputStreamReader inputStreamReader = null; Object[] newRow = null; if (rowData != null) { newRow = rowData.clone(); } try { // used for calculating the responseTime long startTime = System.currentTimeMillis(); // Execute the POST method int statusCode = HTTPPOSTclient.executeMethod(hostConfiguration, post); // calculate the responseTime long responseTime = System.currentTimeMillis() - startTime; if (isDetailed()) { logDetailed( BaseMessages.getString(PKG, "HTTPPOST.Log.ResponseTime", responseTime, data.realUrl)); } // Display status code if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.ResponseCode", String.valueOf(statusCode))); } String body = null; if (statusCode != -1) { if (statusCode == 204) { body = ""; } else { // if the response is not 401: HTTP Authentication required if (statusCode != 401) { // Use request encoding if specified in component to avoid strange response encodings // See PDI-3815 String encoding = data.realEncoding; // Try to determine the encoding from the Content-Type value // if (Const.isEmpty(encoding)) { String contentType = post.getResponseHeader("Content-Type").getValue(); if (contentType != null && contentType.contains("charset")) { encoding = contentType.replaceFirst("^.*;\\s*charset\\s*=\\s*", "") .replace("\"", "").trim(); } } // Get the response, but only specify encoding if we've got one // otherwise the default charset ISO-8859-1 is used by HttpClient if (Const.isEmpty(encoding)) { if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.Encoding", "ISO-8859-1")); } inputStreamReader = new InputStreamReader(post.getResponseBodyAsStream()); } else { if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.Encoding", encoding)); } inputStreamReader = new InputStreamReader(post.getResponseBodyAsStream(), encoding); } StringBuffer bodyBuffer = new StringBuffer(); int c; while ((c = inputStreamReader.read()) != -1) { bodyBuffer.append((char) c); } inputStreamReader.close(); // Display response body = bodyBuffer.toString(); if (isDebug()) { logDebug(BaseMessages.getString(PKG, "HTTPPOST.Log.ResponseBody", body)); } } else { // the status is a 401 throw new KettleStepException( BaseMessages.getString(PKG, "HTTPPOST.Exception.Authentication", data.realUrl)); } } } int returnFieldsOffset = data.inputRowMeta.size(); if (!Const.isEmpty(meta.getFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, body); returnFieldsOffset++; } if (!Const.isEmpty(meta.getResultCodeFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, new Long(statusCode)); returnFieldsOffset++; } if (!Const.isEmpty(meta.getResponseTimeFieldName())) { newRow = RowDataUtil.addValueData(newRow, returnFieldsOffset, new Long(responseTime)); } } finally { if (inputStreamReader != null) { inputStreamReader.close(); } // Release current connection to the connection pool once you are done post.releaseConnection(); if (data.realcloseIdleConnectionsTime > -1) { HTTPPOSTclient.getHttpConnectionManager() .closeIdleConnections(data.realcloseIdleConnectionsTime); } } return newRow; } catch (UnknownHostException uhe) { throw new KettleException( BaseMessages.getString(PKG, "HTTPPOST.Error.UnknownHostException", uhe.getMessage())); } catch (Exception e) { throw new KettleException(BaseMessages.getString(PKG, "HTTPPOST.Error.CanNotReadURL", data.realUrl), e); } finally { if (fis != null) { BaseStep.closeQuietly(fis); } } }