List of usage examples for org.apache.http.impl.client DefaultHttpClient getParams
public synchronized final HttpParams getParams()
From source file:es.javocsoft.android.lib.toolbox.ToolBox.java
/** * Makes a Http operation./*from w w w. j a v a2s. c om*/ * * This method set a parameters to the request that avoid being waiting * for the server response or once connected, being waiting to receive * the data. * * @param method Method type to execute. @See HTTP_METHOD. * @param url Url of the request. * @param jsonData The body content of the request (JSON). Can be null. * @param headers The headers to include in the request. * @return The content of the request if there is one. * @throws Exception */ public static String net_httpclient_doAction(HTTP_METHOD method, String url, String jsonData, Map<String, String> headers) throws ConnectTimeoutException, SocketTimeoutException, Exception { String responseData = null; DefaultHttpClient httpclient = new DefaultHttpClient(); // The time it takes to open TCP connection. httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, CONNECTION_DEFAULT_TIMEOUT); // Timeout when server does not send data. httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, CONNECTION_DEFAULT_DATA_RECEIVAL_TIMEOUT); // Some tuning that is not required for bit tests. //httpclient.getParams().setParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false); httpclient.getParams().setParameter(CoreConnectionPNames.TCP_NODELAY, true); HttpRequestBase httpMethod = null; switch (method) { case POST: httpMethod = new HttpPost(url); //Add the body to the request. StringEntity se = new StringEntity(jsonData); ((HttpPost) httpMethod).setEntity(se); break; case DELETE: httpMethod = new HttpDelete(url); break; case GET: httpMethod = new HttpGet(url); break; } //Add the headers to the request. if (headers != null) { for (String header : headers.keySet()) { httpMethod.setHeader(header, headers.get(header)); } } HttpResponse response = httpclient.execute(httpMethod); if (LOG_ENABLE) { Log.d(TAG, "HTTP OPERATION: Read from server - Status Code: " + response.getStatusLine().getStatusCode()); Log.d(TAG, "HTTP OPERATION: Read from server - Status Message: " + response.getStatusLine().getReasonPhrase()); } //Get the response body if there is one. HttpEntity entity = response.getEntity(); if (entity != null) { //responseData = EntityUtils.toString(entity, "UTF-8"); InputStream instream = entity.getContent(); responseData = IOUtils.convertStreamToString(instream); if (LOG_ENABLE) Log.i(TAG, "HTTP OPERATION: Read from server - return: " + responseData); } if (response.getStatusLine().getStatusCode() != 200) { throw new Exception("Http operation " + method.name() + " failed with error code " + response.getStatusLine().getStatusCode() + "(" + response.getStatusLine().getReasonPhrase() + ")"); } return responseData; }
From source file:org.lightcouch.CouchDbClientBase.java
/** * @return {@link DefaultHttpClient} instance. *//*from www . j av a 2 s . com*/ private HttpClient createHttpClient(CouchDbProperties props) { DefaultHttpClient httpclient = null; try { SchemeSocketFactory ssf = null; if (props.getProtocol().equals("https")) { TrustManager trustManager = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[] { trustManager }, null); ssf = new SSLSocketFactory(sslcontext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); SSLSocket socket = (SSLSocket) ssf.createSocket(null); socket.setEnabledCipherSuites(new String[] { "SSL_RSA_WITH_RC4_128_MD5" }); } else { ssf = PlainSocketFactory.getSocketFactory(); } SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme(props.getProtocol(), props.getPort(), ssf)); PoolingClientConnectionManager ccm = new PoolingClientConnectionManager(schemeRegistry); httpclient = new DefaultHttpClient(ccm); host = new HttpHost(props.getHost(), props.getPort(), props.getProtocol()); context = new BasicHttpContext(); // Http params httpclient.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8"); httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, props.getSocketTimeout()); httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, props.getConnectionTimeout()); int maxConnections = props.getMaxConnections(); if (maxConnections != 0) { ccm.setMaxTotal(maxConnections); ccm.setDefaultMaxPerRoute(maxConnections); } if (props.getProxyHost() != null) { HttpHost proxy = new HttpHost(props.getProxyHost(), props.getProxyPort()); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); } // basic authentication if (props.getUsername() != null && props.getPassword() != null) { httpclient.getCredentialsProvider().setCredentials(new AuthScope(props.getHost(), props.getPort()), new UsernamePasswordCredentials(props.getUsername(), props.getPassword())); props.clearPassword(); AuthCache authCache = new BasicAuthCache(); BasicScheme basicAuth = new BasicScheme(); authCache.put(host, basicAuth); context.setAttribute(ClientContext.AUTH_CACHE, authCache); } // request interceptor httpclient.addRequestInterceptor(new HttpRequestInterceptor() { public void process(final HttpRequest request, final HttpContext context) throws IOException { if (log.isInfoEnabled()) log.info(">> " + request.getRequestLine()); } }); // response interceptor httpclient.addResponseInterceptor(new HttpResponseInterceptor() { public void process(final HttpResponse response, final HttpContext context) throws IOException { validate(response); if (log.isInfoEnabled()) log.info("<< Status: " + response.getStatusLine().getStatusCode()); } }); } catch (Exception e) { log.error("Error Creating HTTP client. " + e.getMessage()); throw new IllegalStateException(e); } return httpclient; }
From source file:com.mikecorrigan.bohrium.pubsub.Transaction.java
private int readWrite(HttpEntityEnclosingRequestBase request) { Log.v(TAG, "readWrite"); CookieStore mCookieStore = new BasicCookieStore(); mCookieStore.addCookie(mAuthCookie); DefaultHttpClient httpClient = new DefaultHttpClient(); BasicHttpContext mHttpContext = new BasicHttpContext(); mHttpContext.setAttribute(ClientContext.COOKIE_STORE, mCookieStore); // Encode request body. StringEntity requestEntity;/*from w ww . ja v a2 s. c om*/ try { requestEntity = new StringEntity(encode(mRequestBody)); } catch (UnsupportedEncodingException e) { Log.e(TAG, "HTTP encoding failed=" + e); return mStatusCode; } try { final HttpParams getParams = new BasicHttpParams(); HttpClientParams.setRedirecting(getParams, false); request.setParams(getParams); request.setHeader("Content-Type", getMimeType()); request.setEntity(requestEntity); HttpResponse response = httpClient.execute(request, mHttpContext); Log.d(TAG, "status=" + response.getStatusLine()); // Read response body. HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { InputStream is = responseEntity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8); StringBuilder sb = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { sb.append(line); sb.append("\n"); } is.close(); mStatusCode = response.getStatusLine().getStatusCode(); mStatusReason = response.getStatusLine().getReasonPhrase(); if (mStatusCode == 200) { mResponseBody = decode(sb.toString()); Log.v(TAG, "mResponseBody=" + sb.toString()); } return mStatusCode; } } catch (IOException e) { Log.e(TAG, "exception=" + e); Log.e(TAG, Log.getStackTraceString(e)); } finally { httpClient.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, true); } return mStatusCode; }
From source file:com.pari.ic.ICManager.java
private Collection<ICPackage> retriveICPackagesForCustomerInstance(String customer, String instance, ICStorageServerSettings settings) throws Exception { if (settings.getConnectivityType() == ConnectivityTypeEnum.CONNECTIVITY) { // For Standalone NCCM, send the request via Connectivity String tegHost = settings.getTegHost(); if (tegHost == null) { logger.error("TEG HOST is not configured.... "); return Collections.emptyList(); }// w w w . j a v a 2s . c om String tegUrl = "http://" + tegHost + "/NccmCollector/ICDownloadServlet?"; logger.info("URL to TEG :" + tegUrl); // Sample URL - // http://172.21.136.202:8080/NccmCollector/ICDownloadServlet?GET_IC_PACK=FALSE tegUrl = tegUrl + "GET_IC_PACK=FALSE"; DefaultHttpClient httpclient = null; String request = new URL(getFullUrl(settings.getServerHost()) + "/NetworkManagerWS/query/newPackages/" + customer + "/" + instance).toString(); request = request + "&&&"; request = request + settings.getUserId(); request = request + "&&&"; request = request + settings.getPassword(); logger.info("Request URL for package query : " + request); String responseStr = null; try { httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); tegUrl = tegUrl.replaceAll(" ", "%20"); logger.info("Posting request to url: " + tegUrl); HttpPost httppost = new HttpPost(tegUrl); httppost.setEntity(new StringEntity(request, null, null)); httppost.setHeader("Content-type", "text/xml"); HttpResponse response = httpclient.execute(httppost); HttpEntity resEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); responseStr = ""; if (resEntity != null) { responseStr = EntityUtils.toString(resEntity); } logger.info("Response for Package query :" + responseStr); if (statusCode != 200) { throw new Exception("HTTP Status:" + response.getStatusLine() + ". Response:" + responseStr); } } finally { if (httpclient != null) { httpclient.getConnectionManager().shutdown(); } } return ICPackage.readPackages(responseStr); } String responseStr = null; HttpClient client = null; try { client = new DefaultHttpClient(); getSecuredHttpClient(client); HttpGet request = new HttpGet(getFullUrl(settings.getServerHost()) + "/NetworkManagerWS/query/newPackages/" + customer + "/" + instance); ((AbstractHttpClient) client).getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(settings.getUserId(), settings.getPassword())); HttpResponse response = client.execute(request); HttpEntity resEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); responseStr = ""; if (resEntity != null) { responseStr = EntityUtils.toString(resEntity); } logger.debug("Response for Package query :" + responseStr); if (statusCode != 200) { logger.error("HTTP Status:" + response.getStatusLine() + ". Response:" + responseStr); throw new Exception("HTTP Status:" + response.getStatusLine() + ". Response:" + responseStr); } } finally { if (client != null) { try { client.getConnectionManager().shutdown(); } catch (Exception e) { } } } return ICPackage.readPackages(responseStr); }
From source file:com.pari.ic.ICManager.java
@Override public String testICStorageServerSettings(ICStorageServerSettings settings) throws Exception { String msg = ""; if (settings.getPollType() == 1 && settings.getPollFrequency() < 60) { msg = "Invalid IC Package Poll Frequency value. Minimum allowed value is 60."; logger.error(msg);//from w w w. ja v a2s. com return msg; } if (settings.getConnectivityType() == ConnectivityTypeEnum.CONNECTIVITY) { // For Standalone NCCM, send the request via Connectivity String tegHost = settings.getTegHost(); if (tegHost == null) { msg = "TEG HOST is not configured"; logger.error(msg); return msg; } String tegUrl = "http://" + tegHost + "/NccmCollector/ICDownloadServlet?"; logger.info("URL to TEG :" + tegUrl); // Sample URL - // http://172.21.136.202:8080/NccmCollector/ICDownloadServlet?GET_IC_PACK=FALSE tegUrl = tegUrl + "GET_IC_PACK=FALSE"; DefaultHttpClient httpclient = null; String request = new URL(getFullUrl(settings.getServerHost()) + "/NetworkManagerWS/uas/testConnection") .toString(); request = request + "&&&"; request = request + settings.getUserId(); request = request + "&&&"; request = request + settings.getPassword(); logger.info("Request URL for package query : " + request); String responseStr = ""; try { httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); tegUrl = tegUrl.replaceAll(" ", "%20"); logger.info("Posting request to url: " + tegUrl); HttpPost httppost = new HttpPost(tegUrl); httppost.setEntity(new StringEntity(request, null, null)); httppost.setHeader("Content-type", "text/xml"); HttpResponse response = httpclient.execute(httppost); HttpEntity resEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); responseStr = ""; if (resEntity != null) { responseStr = EntityUtils.toString(resEntity); } logger.info("Response for Package query :" + responseStr); if (statusCode != 200) { msg = responseStr + ". HTTP Status:" + response.getStatusLine() + ". Response:" + responseStr; logger.error(msg); return msg; } else { msg = "Successfully connected to UAS"; } } catch (Exception e) { if (responseStr != null) { msg = responseStr + ". " + e.getMessage(); } else { msg = e.getMessage(); } logger.error(msg); return msg; } finally { if (httpclient != null) { httpclient.getConnectionManager().shutdown(); } } return msg; } String responseStr = null; HttpClient client = null; try { client = new DefaultHttpClient(); getSecuredHttpClient(client); HttpGet request = new HttpGet( getFullUrl(settings.getServerHost()) + "/NetworkManagerWS/uas/testConnection"); ((AbstractHttpClient) client).getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(settings.getUserId(), settings.getPassword())); HttpResponse response = client.execute(request); HttpEntity resEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); responseStr = ""; if (resEntity != null) { responseStr = EntityUtils.toString(resEntity); } logger.info("Response for Package query :" + responseStr); if (statusCode != 200) { msg = responseStr + ". HTTP Status:" + response.getStatusLine() + ". Response:" + responseStr; logger.error(msg); return msg; } else { msg = "Successfully connected to UAS"; } } catch (Exception e) { if (responseStr != null) { msg = responseStr + ". " + e.getMessage(); } else { msg = e.getCause().getMessage(); } logger.error(msg); return msg; } finally { if (client != null) { try { client.getConnectionManager().shutdown(); } catch (Exception e) { } } } return msg; }
From source file:org.apache.solr.client.solrj.impl.Krb5HttpClientConfigurer.java
public void configure(DefaultHttpClient httpClient, SolrParams config) { super.configure(httpClient, config); if (System.getProperty(LOGIN_CONFIG_PROP) != null) { String configValue = System.getProperty(LOGIN_CONFIG_PROP); if (configValue != null) { logger.info("Setting up SPNego auth with config: " + configValue); final String useSubjectCredsProp = "javax.security.auth.useSubjectCredsOnly"; String useSubjectCredsVal = System.getProperty(useSubjectCredsProp); // "javax.security.auth.useSubjectCredsOnly" should be false so that the underlying // authentication mechanism can load the credentials from the JAAS configuration. if (useSubjectCredsVal == null) { System.setProperty(useSubjectCredsProp, "false"); } else if (!useSubjectCredsVal.toLowerCase(Locale.ROOT).equals("false")) { // Don't overwrite the prop value if it's already been written to something else, // but log because it is likely the Credentials won't be loaded correctly. logger.warn("System Property: " + useSubjectCredsProp + " set to: " + useSubjectCredsVal + " not false. SPNego authentication may not be successful."); }/*from www . ja va 2 s .c om*/ javax.security.auth.login.Configuration.setConfiguration(jaasConfig); //Enable only SPNEGO authentication scheme. AuthSchemeRegistry registry = new AuthSchemeRegistry(); registry.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(true, false)); httpClient.setAuthSchemes(registry); // Get the credentials from the JAAS configuration rather than here Credentials useJaasCreds = new Credentials() { public String getPassword() { return null; } public Principal getUserPrincipal() { return null; } }; SolrPortAwareCookieSpecFactory cookieFactory = new SolrPortAwareCookieSpecFactory(); httpClient.getCookieSpecs().register(cookieFactory.POLICY_NAME, cookieFactory); httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, cookieFactory.POLICY_NAME); httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY, useJaasCreds); httpClient.addRequestInterceptor(bufferedEntityInterceptor); } else { httpClient.getCredentialsProvider().clear(); } } }
From source file:uk.ac.bbsrc.tgac.miso.core.manager.ERASubmissionManager.java
/** * Builds a "trusting" trust manager. This is totally horrible and basically ignores everything that SSL stands for. * This allows connection to self-signed certificate hosts, bypassing the normal validation exceptions that occur. * <p/>// w w w.j av a 2 s . c om * Use at your own risk - again, this is horrible! */ public DefaultHttpClient getEvilTrustingTrustManager(DefaultHttpClient httpClient) { try { // First create a trust manager that won't care about any SSL self-cert problems - eurgh! X509TrustManager trustManager = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { log.warn("BYPASSING CLIENT TRUSTED CHECK!"); } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { log.warn("BYPASSING SERVER TRUSTED CHECK!"); } public X509Certificate[] getAcceptedIssuers() { log.warn("BYPASSING CERTIFICATE ISSUER CHECKS!"); return null; } }; // Now put the trust manager into an SSLContext SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[] { trustManager }, null); SSLSocketFactory sf = new SSLSocketFactory(sslcontext); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); // If you want a thread safe client, use the ThreadSafeConManager, but // otherwise just grab the one from the current client, and get hold of its // schema registry. THIS IS THE KEY THING. ClientConnectionManager ccm = httpClient.getConnectionManager(); SchemeRegistry schemeRegistry = ccm.getSchemeRegistry(); // Register our new socket factory with the typical SSL port and the // correct protocol name. schemeRegistry.register(new Scheme("https", sf, 443)); // Finally, apply the ClientConnectionManager to the Http Client // or, as in this example, create a new one. return new DefaultHttpClient(ccm, httpClient.getParams()); } catch (Throwable t) { log.warn("Something nasty happened with the EvilTrustingTrustManager. Warranty is null and void!"); t.printStackTrace(); return null; } }
From source file:com.mikecorrigan.bohrium.pubsub.RegistrationClient.java
private void requestAuthCookie() { DefaultHttpClient httpClient = new DefaultHttpClient(); try {//from ww w .j av a 2 s . co m String continueURL = getBaseUrl(); URI uri = new URI(getBaseUrl() + "/_ah/login?continue=" + URLEncoder.encode(continueURL, "UTF-8") + "&auth=" + mConfiguration.getString(AUTH_TOKEN)); HttpGet method = new HttpGet(uri); final HttpParams getParams = new BasicHttpParams(); HttpClientParams.setRedirecting(getParams, false); method.setParams(getParams); HttpResponse res = httpClient.execute(method); Header[] headers = res.getHeaders("Set-Cookie"); int statusCode = res.getStatusLine().getStatusCode(); Log.v(TAG, "statusCode=" + statusCode); if (statusCode != 302 || headers.length == 0) { Log.e(TAG, "Failed to get authCookie: statusCode=" + statusCode); setStateAndNotify(REGISTRATION_STATE_ERROR, REGISTRATION_SUBSTATE_ERROR_AUTH_COOKIE); return; } for (Cookie cookie : httpClient.getCookieStore().getCookies()) { Log.v(TAG, "cookie=" + cookie.getName()); if (AUTH_COOKIE_NAME.equals(cookie.getName())) { Log.i(TAG, "Received authCookie=" + cookie); mAuthCookie = cookie; setStateAndNotify(REGISTRATION_STATE_REGISTERING, REGISTRATION_SUBSTATE_HAVE_AUTH_COOKIE); // Move on to the next step, register to C2DM. c2dmRegister(this, mConfiguration.getString("senderId")); return; } } } catch (IOException | URISyntaxException e) { Log.e(TAG, "Exception " + e); Log.e(TAG, Log.getStackTraceString(e)); } finally { httpClient.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, true); } setStateAndNotify(REGISTRATION_STATE_ERROR, REGISTRATION_SUBSTATE_ERROR_AUTH_COOKIE); }
From source file:gov.nih.nci.nbia.StandaloneDMV3.java
private List<String> connectAndReadFromURL(URL url, List<String> seriesList, String userId, String passWd) { List<String> data = null; DefaultHttpClient httpClient = null; TrustStrategy easyStrategy = new TrustStrategy() { @Override//from www . ja v a2 s . c om public boolean isTrusted(X509Certificate[] certificate, String authType) throws CertificateException { return true; } }; try { // SSLContext sslContext = SSLContext.getInstance("SSL"); // set up a TrustManager that trusts everything // sslContext.init(null, new TrustManager[] { new // EasyX509TrustManager(null)}, null); SSLSocketFactory sslsf = new SSLSocketFactory(easyStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); Scheme httpsScheme = new Scheme("https", 443, sslsf); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(httpsScheme); schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); ClientConnectionManager ccm = new ThreadSafeClientConnManager(schemeRegistry); HttpParams httpParams = new BasicHttpParams(); // HttpConnectionParams.setConnectionTimeout(httpParams, 50000); // HttpConnectionParams.setSoTimeout(httpParams, new // Integer(12000)); HttpConnectionParams.setConnectionTimeout(httpParams, 500000); HttpConnectionParams.setSoTimeout(httpParams, new Integer(120000)); httpClient = new DefaultHttpClient(ccm, httpParams); httpClient.setRoutePlanner(new ProxySelectorRoutePlanner(schemeRegistry, ProxySelector.getDefault())); // // Additions by lrt for tcia - // // attempt to reduce errors going through a Coyote Point // Equalizer load balance switch // httpClient.getParams().setParameter("http.socket.timeout", new // Integer(12000)); httpClient.getParams().setParameter("http.socket.timeout", new Integer(120000)); httpClient.getParams().setParameter("http.socket.receivebuffer", new Integer(16384)); httpClient.getParams().setParameter("http.tcp.nodelay", true); httpClient.getParams().setParameter("http.connection.stalecheck", false); // // end lrt additions HttpPost httpPostMethod = new HttpPost(url.toString()); List<BasicNameValuePair> postParams = new ArrayList<BasicNameValuePair>(); if (userId != null && passWd != null) { postParams.add(new BasicNameValuePair("userId", userId)); httpPostMethod.addHeader("password", passWd); } postParams.add(new BasicNameValuePair("numberOfSeries", Integer.toString(seriesList.size()))); int i = 0; for (String s : seriesList) { postParams.add(new BasicNameValuePair("series" + Integer.toString(++i), s)); } UrlEncodedFormEntity query = new UrlEncodedFormEntity(postParams); httpPostMethod.setEntity(query); HttpResponse response = httpClient.execute(httpPostMethod); int responseCode = response.getStatusLine().getStatusCode(); if (responseCode != HttpURLConnection.HTTP_OK) { returnStatus = responseCode; return null; } else { InputStream inputStream = response.getEntity().getContent(); data = IOUtils.readLines(inputStream); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (KeyManagementException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (KeyStoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnrecoverableKeyException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (httpClient != null) { httpClient.getConnectionManager().shutdown(); } } return data; }
From source file:com.mockey.ClientExecuteProxy.java
/** * /*from w ww . jav a2 s. c o m*/ * @param twistInfo * @param proxyServer * @param realServiceUrl * @param httpMethod * @param request * @return * @throws ClientExecuteProxyException */ public ResponseFromService execute(TwistInfo twistInfo, ProxyServerModel proxyServer, Url realServiceUrl, boolean allowRedirectFollow, RequestFromClient request) throws ClientExecuteProxyException { log.info("Request: " + String.valueOf(realServiceUrl)); // general setup SchemeRegistry supportedSchemes = new SchemeRegistry(); // Register the "http" and "https" protocol schemes, they are // required by the default operator to look up socket factories. supportedSchemes.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); supportedSchemes.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory())); // prepare parameters HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.ISO_8859_1); HttpProtocolParams.setUseExpectContinue(params, false); ClientConnectionManager ccm = new ThreadSafeClientConnManager(supportedSchemes); DefaultHttpClient httpclient = new DefaultHttpClient(ccm, params); if (!allowRedirectFollow) { // Do NOT allow for 302 REDIRECT httpclient.setRedirectStrategy(new DefaultRedirectStrategy() { public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) { boolean isRedirect = false; try { isRedirect = super.isRedirected(request, response, context); } catch (ProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (!isRedirect) { int responseCode = response.getStatusLine().getStatusCode(); if (responseCode == 301 || responseCode == 302) { return true; } } return isRedirect; } }); } else { // Yes, allow for 302 REDIRECT // Nothing needed here. } // Prevent CACHE, 304 not modified // httpclient.addRequestInterceptor(new HttpRequestInterceptor() { // public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException { // // request.setHeader("If-modified-Since", "Fri, 13 May 2006 23:54:18 GMT"); // // } // }); CookieStore cookieStore = httpclient.getCookieStore(); for (Cookie httpClientCookie : request.getHttpClientCookies()) { // HACK: // httpClientCookie.getValue(); cookieStore.addCookie(httpClientCookie); } // httpclient.setCookieStore(cookieStore); if (ClientExecuteProxy.cookieStore == null) { ClientExecuteProxy.cookieStore = httpclient.getCookieStore(); } else { httpclient.setCookieStore(ClientExecuteProxy.cookieStore); } StringBuffer requestCookieInfo = new StringBuffer(); // Show what cookies are in the store . for (Cookie cookie : ClientExecuteProxy.cookieStore.getCookies()) { log.debug("Cookie in the cookie STORE: " + cookie.toString()); requestCookieInfo.append(cookie.toString() + "\n\n\n"); } if (proxyServer.isProxyEnabled()) { // make sure to use a proxy that supports CONNECT httpclient.getCredentialsProvider().setCredentials(proxyServer.getAuthScope(), proxyServer.getCredentials()); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxyServer.getHttpHost()); } // TWISTING Url originalRequestUrlBeforeTwisting = null; if (twistInfo != null) { String fullurl = realServiceUrl.getFullUrl(); String twistedUrl = twistInfo.getTwistedValue(fullurl); if (twistedUrl != null) { originalRequestUrlBeforeTwisting = realServiceUrl; realServiceUrl = new Url(twistedUrl); } } ResponseFromService responseMessage = null; try { HttpHost htttphost = new HttpHost(realServiceUrl.getHost(), realServiceUrl.getPort(), realServiceUrl.getScheme()); HttpResponse response = httpclient.execute(htttphost, request.postToRealServer(realServiceUrl)); if (response.getStatusLine().getStatusCode() == 302) { log.debug("FYI: 302 redirect occuring from " + realServiceUrl.getFullUrl()); } responseMessage = new ResponseFromService(response); responseMessage.setOriginalRequestUrlBeforeTwisting(originalRequestUrlBeforeTwisting); responseMessage.setRequestUrl(realServiceUrl); } catch (Exception e) { log.error(e); throw new ClientExecuteProxyException("Unable to retrieve a response. ", realServiceUrl, e); } finally { // When HttpClient instance is no longer needed, // shut down the connection manager to ensure // immediate deallocation of all system resources httpclient.getConnectionManager().shutdown(); } // Parse out the response information we're looking for // StringBuffer responseCookieInfo = new StringBuffer(); // // Show what cookies are in the store . // for (Cookie cookie : ClientExecuteProxy.cookieStore.getCookies()) { // log.info("Cookie in the cookie STORE: " + cookie.toString()); // responseCookieInfo.append(cookie.toString() + "\n\n\n"); // // } // responseMessage.setRequestCookies(requestCookieInfo.toString()); // responseMessage.setResponseCookies(responseCookieInfo.toString()); return responseMessage; }