List of usage examples for org.apache.commons.httpclient HostConfiguration HostConfiguration
public HostConfiguration()
From source file:fr.cls.atoll.motu.library.misc.cas.TestCASRest.java
public static Cookie[] validateFromCAS2(String username, String password) throws Exception { String url = casServerUrlPrefix + "/v1/tickets?"; String s = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8"); s += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8"); HttpState initialState = new HttpState(); // Initial set of cookies can be retrieved from persistent storage and // re-created, using a persistence mechanism of choice, // Cookie mycookie = new Cookie(".foobar.com", "mycookie", "stuff", "/", null, false); // Create an instance of HttpClient. // HttpClient client = new HttpClient(); HttpClient client = new HttpClient(); Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 8443); URI uri = new URI(url + s, true); // use relative url only PostMethod httpget = new PostMethod(url); httpget.addParameter("username", username); httpget.addParameter("password", password); HostConfiguration hc = new HostConfiguration(); hc.setHost("atoll-dev.cls.fr", 8443, easyhttps); // client.executeMethod(hc, httpget); client.setState(initialState);/*from w ww. j a v a2 s . co m*/ // Create a method instance. System.out.println(url + s); GetMethod method = new GetMethod(url + s); // GetMethod method = new GetMethod(url ); HostConfiguration hostConfiguration = new HostConfiguration(); hostConfiguration.setProxy("proxy.cls.fr", 8080); client.setHostConfiguration(hostConfiguration); // Provide custom retry handler is necessary method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // String username = "xxx"; // String password = "xxx"; // Credentials credentials = new UsernamePasswordCredentials(username, password); // AuthScope authScope = new AuthScope("proxy.cls.fr", 8080); // // client.getState().setProxyCredentials(authScope, credentials); Cookie[] cookies = null; try { // Execute the method. // int statusCode = client.executeMethod(method); int statusCode = client.executeMethod(hc, httpget); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed: " + method.getStatusLine()); } for (Header header : method.getRequestHeaders()) { System.out.println(header.getName()); System.out.println(header.getValue()); } // Read the response body. byte[] responseBody = method.getResponseBody(); // Deal with the response. // Use caution: ensure correct character encoding and is not binary data System.out.println(new String(responseBody)); System.out.println("Response status code: " + statusCode); // Get all the cookies cookies = client.getState().getCookies(); // Display the cookies System.out.println("Present cookies: "); for (int i = 0; i < cookies.length; i++) { System.out.println(" - " + cookies[i].toExternalForm()); } Assertion assertion = AssertionHolder.getAssertion(); if (assertion == null) { System.out.println("<p>Assertion is null</p>"); } } catch (HttpException e) { System.err.println("Fatal protocol violation: " + e.getMessage()); e.printStackTrace(); } catch (IOException e) { System.err.println("Fatal transport error: " + e.getMessage()); e.printStackTrace(); } finally { // Release the connection. method.releaseConnection(); } return cookies; }
From source file:de.pdark.dsmp.ProxyDownload.java
/** * Do the download.//ww w . j av a 2 s . c o m * * @throws IOException * @throws DownloadFailed */ public void download() throws IOException, DownloadFailed { if (!config.isAllowed(url)) { throw new DownloadFailed( "HTTP/1.1 " + HttpStatus.SC_FORBIDDEN + " Download denied by rule in DSMP config"); } // If there is a status file in the cache, return it instead of trying it again // As usual with caches, this one is a key area which will always cause // trouble. // TODO There should be a simple way to get rid of the cached statuses // TODO Maybe retry a download after a certain time? File statusFile = new File(dest.getAbsolutePath() + ".status"); if (statusFile.exists()) { try { FileReader r = new FileReader(statusFile); char[] buffer = new char[(int) statusFile.length()]; int len = r.read(buffer); r.close(); String status = new String(buffer, 0, len); throw new DownloadFailed(status); } catch (IOException e) { log.warn("Error writing 'File not found'-Status to " + statusFile.getAbsolutePath(), e); } } mkdirs(); HttpClient client = new HttpClient(); String msg = ""; if (config.useProxy(url)) { Credentials defaultcreds = new UsernamePasswordCredentials(config.getProxyUsername(), config.getProxyPassword()); AuthScope scope = new AuthScope(config.getProxyHost(), config.getProxyPort(), AuthScope.ANY_REALM); HostConfiguration hc = new HostConfiguration(); hc.setProxy(config.getProxyHost(), config.getProxyPort()); client.setHostConfiguration(hc); client.getState().setProxyCredentials(scope, defaultcreds); msg = "via proxy "; } log.info("Downloading " + msg + "to " + dest.getAbsolutePath()); GetMethod get = new GetMethod(url.toString()); get.setFollowRedirects(true); try { int status = client.executeMethod(get); log.info("Download status: " + status); if (0 == 1 && log.isDebugEnabled()) { Header[] header = get.getResponseHeaders(); for (Header aHeader : header) log.debug(aHeader.toString().trim()); } log.info("Content: " + valueOf(get.getResponseHeader("Content-Length")) + " bytes; " + valueOf(get.getResponseHeader("Content-Type"))); if (status != HttpStatus.SC_OK) { // Remember "File not found" if (status == HttpStatus.SC_NOT_FOUND) { try { FileWriter w = new FileWriter(statusFile); w.write(get.getStatusLine().toString()); w.close(); } catch (IOException e) { log.warn("Error writing 'File not found'-Status to " + statusFile.getAbsolutePath(), e); } } throw new DownloadFailed(get); } File dl = new File(dest.getAbsolutePath() + ".new"); OutputStream out = new BufferedOutputStream(new FileOutputStream(dl)); IOUtils.copy(get.getResponseBodyAsStream(), out); out.close(); File bak = new File(dest.getAbsolutePath() + ".bak"); if (bak.exists()) bak.delete(); if (dest.exists()) dest.renameTo(bak); dl.renameTo(dest); } finally { get.releaseConnection(); } }
From source file:net.mojodna.searchable.solr.SolrIndexer.java
private HttpClient getHttpClient() throws URIException { final HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setHost(new URI("http", null, solrHost, solrPort, solrPath)); httpClient.setHostConfiguration(hostConfig); return httpClient; }
From source file:com.worldline.easycukes.commons.Configuration.java
/** * Allows to deal with the proxy configuration. It creates a * {@link HostConfiguration} object that can be used by the HTTPClient, and * also sets the proxy in system variables. * * @return a {@link HostConfiguration} containing information about the * proxy, along with the fact that system properties have been set. * Null if the proxy is not specified *///from ww w . j av a 2s. com public static HostConfiguration configureProxy() { if (!isLoaded) load(); if (isProxyNeeded()) { LOGGER.info("Proxy is needed => configuring the http client"); final HostConfiguration hostConfiguration = new HostConfiguration(); hostConfiguration.setProxy( environment.get("proxy").get("host") != null ? environment.get("proxy").get("host").toString() : "", environment.get("proxy").get("port") != null ? Integer.parseInt(environment.get("proxy").get("port").toString()) : 0); LOGGER.info("Setting the proxy... Using " + hostConfiguration.getProxyHost() + ":" + hostConfiguration.getProxyPort()); // Set system properties too System.setProperty("https.proxyHost", environment.get("proxy").get("host").toString()); System.setProperty("https.proxyPort", environment.get("proxy").get("port").toString()); return hostConfiguration; } return null; }
From source file:fr.cls.atoll.motu.library.misc.cas.HttpClientTutorial.java
public static void test() { HttpClient client = new HttpClient(); client.getParams().setParameter("http.useragent", "Test Client"); client.getParams().setParameter("http.connection.timeout", new Integer(5000)); GetMethod method = new GetMethod(); FileOutputStream fos = null;/*from w w w . j av a 2 s . co m*/ try { method.setURI(new URI("http://www.google.com", true)); int returnCode = client.executeMethod(method); if (returnCode != HttpStatus.SC_OK) { System.err.println("Unable to fetch default page, status code: " + returnCode); } System.err.println(method.getResponseBodyAsString()); method.setURI(new URI("http://www.google.com/images/logo.gif", true)); returnCode = client.executeMethod(method); if (returnCode != HttpStatus.SC_OK) { System.err.println("Unable to fetch image, status code: " + returnCode); } byte[] imageData = method.getResponseBody(); fos = new FileOutputStream(new File("google.gif")); fos.write(imageData); HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setHost("www.yahoo.com", null, 80, Protocol.getProtocol("http")); method.setURI(new URI("/", true)); client.executeMethod(hostConfig, method); System.err.println(method.getResponseBodyAsString()); } catch (HttpException he) { System.err.println(he); } catch (IOException ie) { System.err.println(ie); } finally { method.releaseConnection(); if (fos != null) { try { fos.close(); } catch (Exception fe) { } } } }
From source file:gov.loc.ndmso.proxyfilter.RequestProxy.java
/** * This method performs the proxying of the request to the target address. * * @param target The target address. Has to be a fully qualified address. The request is send as-is to this address. * @param hsRequest The request data which should be send to the * @param hsResponse The response data which will contain the data returned by the proxied request to target. * @throws java.io.IOException Passed on from the connection logic. */// w ww .j a va 2s .c o m public static void execute(final String target, final String collection, final HttpServletRequest hsRequest, final HttpServletResponse hsResponse, MultiThreadedHttpConnectionManager connManager) throws IOException { // log.info("execute, target is " + target); // log.info("response commit state: " + hsResponse.isCommitted()); if (target == null || "".equals(target) || "".equals(target.trim())) { log.error("The target address is not given. Please provide a target address."); return; } // log.info("checking url"); final URL url; try { url = new URL(target); } catch (MalformedURLException e) { // log.error("The provided target url is not valid.", e); return; } // log.info("setting up the host configuration"); final HostConfiguration config = new HostConfiguration(); ProxyHost proxyHost = getUseProxyServer((String) hsRequest.getAttribute("use-proxy")); if (proxyHost != null) config.setProxyHost(proxyHost); final int port = url.getPort() != -1 ? url.getPort() : url.getDefaultPort(); config.setHost(url.getHost(), port, "http"); // log.info("config is " + config.toString()); final HttpMethod targetRequest = setupProxyRequest(hsRequest, url); if (targetRequest == null) { // log.error("Unsupported request method found: " + hsRequest.getMethod()); return; } //perform the request to the target server final HttpClient client = new HttpClient(connManager); //if (log.isInfoEnabled()) { // log.info("client state" + client.getState()); // log.info("client params" + client.getParams().toString()); // log.info("executeMethod / fetching data ..."); //} final int result = client.executeMethod(config, targetRequest); //copy the target response headers to our response setupResponseHeaders(targetRequest, hsResponse); String binRegex = ".*\\.(?i)(jpg|tif|png|gif|bmp|mp3|mpg)(.*$)*"; String binRegexRedux = ".*(?i)(\\/thumb)(.*$)*"; if (target.matches(binRegex) || target.matches(binRegexRedux)) { // log.info("binRegex matched: " + target); InputStream originalResponseStream = targetRequest.getResponseBodyAsStream(); if (originalResponseStream != null) { if (targetRequest.getResponseHeaders().toString().matches("(?i).*content-type.*")) { PrintWriter responseStream = hsResponse.getWriter(); copyStreamText(targetRequest.getResponseBodyAsString(), responseStream); } else { OutputStream responseStream = hsResponse.getOutputStream(); copyStreamBinary(originalResponseStream, responseStream); } } } else { // log.info("binRegex NOT matched: " + target); String proxyResponseStr = targetRequest.getResponseBodyAsString(); // the body might be null, i.e. for responses with cache-headers which leave out the body if (proxyResponseStr != null) { //proxyResponseStr = proxyResponseStr.replaceAll("xqy", "jsp"); proxyResponseStr = proxyResponseStr.replaceAll("National Library Catalog", "Library of Congress Data Service"); proxyResponseStr = proxyResponseStr.replaceAll("Library of Congress collections", "Library of Congress bibliographic data"); proxyResponseStr = proxyResponseStr.replaceAll("Library of Congress Collections", "Library of Congress Bibliographic Data"); proxyResponseStr = proxyResponseStr.replaceAll("action=\"/", "action=\"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("href=\"/", "href=\"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("href=\"/diglib/loc\\.", "href=\"/diglib/" + collection + "/loc."); proxyResponseStr = proxyResponseStr.replaceAll("src=\"/", "src=\"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("value=\"/", "value=\"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("url\\(/", "url\\(/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("url\\(\"/", "url\\(\"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("src'\\) == \"/", "src'\\) == \"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("src\", \"/", "src\", \"/diglib/"); proxyResponseStr = proxyResponseStr.replaceAll("natlibcat@loc.gov", "ndmso@loc.gov"); proxyResponseStr = proxyResponseStr.replaceAll("/nlc/", "/lcds/"); proxyResponseStr = proxyResponseStr.replaceAll("/lcwa/", "/lcwanew/"); //proxyResponseStr = proxyResponseStr.replaceAll("/tohap/", "/x-tohap/"); proxyResponseStr = proxyResponseStr.replaceAll(".xqy", ".jsp"); PrintWriter responseStream = hsResponse.getWriter(); copyStreamText(proxyResponseStr, responseStream); } } // log.info("set up response, result code was " + result); targetRequest.releaseConnection(); // SimpleHttpConnectionManager connManager = (SimpleHttpConnectionManager) client.getHttpConnectionManager(); // connManager.closeIdleConnections(1000); // HttpConnection httpConn = connManager.getConnection(config); // httpConn.releaseConnection(); }
From source file:com.noelios.restlet.ext.httpclient.HttpMethodCall.java
/** * Constructor.// ww w . ja v a 2 s. c o m * * @param helper * The parent HTTP client helper. * @param method * The method name. * @param requestUri * The request URI. * @param hasEntity * Indicates if the call will have an entity to send to the * server. * @throws IOException */ public HttpMethodCall(HttpClientHelper helper, final String method, String requestUri, boolean hasEntity) throws IOException { super(helper, method, requestUri); this.clientHelper = helper; if (requestUri.startsWith("http")) { if (method.equalsIgnoreCase(Method.GET.getName())) { this.httpMethod = new GetMethod(requestUri); } else if (method.equalsIgnoreCase(Method.POST.getName())) { this.httpMethod = new PostMethod(requestUri); } else if (method.equalsIgnoreCase(Method.PUT.getName())) { this.httpMethod = new PutMethod(requestUri); } else if (method.equalsIgnoreCase(Method.HEAD.getName())) { this.httpMethod = new HeadMethod(requestUri); } else if (method.equalsIgnoreCase(Method.DELETE.getName())) { this.httpMethod = new DeleteMethod(requestUri); } else if (method.equalsIgnoreCase(Method.CONNECT.getName())) { final HostConfiguration host = new HostConfiguration(); host.setHost(new URI(requestUri, false)); this.httpMethod = new ConnectMethod(host); } else if (method.equalsIgnoreCase(Method.OPTIONS.getName())) { this.httpMethod = new OptionsMethod(requestUri); } else if (method.equalsIgnoreCase(Method.TRACE.getName())) { this.httpMethod = new TraceMethod(requestUri); } else { this.httpMethod = new EntityEnclosingMethod(requestUri) { @Override public String getName() { return method; } }; } this.httpMethod.setFollowRedirects(this.clientHelper.isFollowRedirects()); this.httpMethod.setDoAuthentication(false); if (this.clientHelper.getRetryHandler() != null) { try { this.httpMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, Engine.loadClass(this.clientHelper.getRetryHandler()).newInstance()); } catch (Exception e) { this.clientHelper.getLogger().log(Level.WARNING, "An error occurred during the instantiation of the retry handler.", e); } } this.responseHeadersAdded = false; setConfidential(this.httpMethod.getURI().getScheme().equalsIgnoreCase(Protocol.HTTPS.getSchemeName())); } else { throw new IllegalArgumentException("Only HTTP or HTTPS resource URIs are allowed here"); } }
From source file:com.exalead.io.failover.FailoverHttpClient.java
public int executeMethod(HttpMethod method, int timeout, int retries) throws HttpException, IOException { if (manager.hosts.size() == 0) { logger.error("Could not execute method without any host."); throw new HttpException("Trying to execute methods without host"); }/* w w w. ja va2 s. c o m*/ // Fake config, the underlying manager manages all HostConfiguration config = new HostConfiguration(); /* Set method parameters */ method.getParams().setSoTimeout(timeout); /* DO NOT retry magically the method */ method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(0, false)); if (manager.getCredentials() != null) { client.getParams().setAuthenticationPreemptive(true); client.getState().setCredentials(new AuthScope(AuthScope.ANY), manager.getCredentials()); } IOException fail = null; for (int i = 1; i <= retries; ++i) { try { return client.executeMethod(config, method); } catch (IOException e) { logger.warn("Failed to execute method - try " + i + "/" + retries); fail = e; continue; } } logger.warn("exception in executeMethod: " + fail.getMessage()); throw fail; }
From source file:flex.messaging.services.http.proxy.ProxyContextFilter.java
protected void setupTarget(ProxyContext context) { Target target = context.getTarget(); String source = context.getUrl(); HttpServletRequest clientRequest = FlexContext.getHttpRequest(); try {/*from www. j av a 2s . c om*/ target.setUrl(new URL(source)); } catch (MalformedURLException e) { try { //[Pete] Enhancement Req. 80172 - relative URLs from webroot (not // webapp context root) if (clientRequest != null) { String baseurl = "http" + (clientRequest.isSecure() ? "s" : "") + "://" + clientRequest.getServerName() + ":" + clientRequest.getServerPort(); target.setUrl(new URL(baseurl + source)); } else { ProxyException pe = new ProxyException(); pe.setMessage(RELATIVE_NOT_SUPPORTED, new Object[] { source }); throw pe; } } catch (MalformedURLException ex) { target.setUrl(null); } } if (target.getUrl() == null) { ProxyException pe = new ProxyException(); pe.setMessage(INVALID_TARGET, new Object[] { source }); throw pe; } target.setHTTPS(target.getUrl().getProtocol().equalsIgnoreCase("https")); target.setEncodedPath(target.getUrl().getPath()); String queryStr = target.getUrl().getQuery(); if (queryStr != null) { target.setEncodedPath(target.getEncodedPath() + ("?" + queryStr)); } try { target.setEncodedPath(URIUtil.encodePathQuery(target.getEncodedPath())); } catch (URIException e) { // exception is thrown if the default charset is not supported. // proceed with the provided URL. } target.setHostConfig(new HostConfiguration()); String targetHost = target.getUrl().getHost(); int targetPort = target.getUrl().getPort(); // Check for a custom protocol Protocol customProtocol = context.getProtocol(); if (customProtocol != null) { target.getHostConfig().setHost(targetHost, targetPort, customProtocol); } else if (target.isHTTPS() && context.allowLaxSSL()) { target.getHostConfig().setHost(targetHost, targetPort, myhttps); } else { String targetProtocol = target.getUrl().getProtocol(); target.getHostConfig().setHost(targetHost, targetPort, targetProtocol); } if (context.getConnectionManager() != null) { context.setHttpClient(new HttpClient(context.getConnectionManager())); } else { context.setHttpClient(new HttpClient()); } // Determine if target domain matches this proxy's domain and port boolean localDomain = false; boolean localPort = false; if (clientRequest != null) { String proxyDomain = clientRequest.getServerName().contains(STRING_LOCALHOST) ? getResolvedLocalhost() : clientRequest.getServerName(); String resolvedTargetHost = targetHost.contains(STRING_LOCALHOST) ? getResolvedLocalhost() : targetHost; if (proxyDomain.equalsIgnoreCase(resolvedTargetHost)) { localDomain = true; int proxyPort = clientRequest.getServerPort(); localPort = proxyPort == targetPort; } } context.setLocalDomain(localDomain); context.setLocalPort(localPort); }
From source file:com.twinsoft.convertigo.beans.core.RequestableStep.java
public RequestableStep() { super();/*from w w w . j a v a2 s . c o m*/ xml = true; hostConfiguration = new HostConfiguration(); orderedVariables = new XMLVector<XMLVector<Long>>(); orderedVariables.add(new XMLVector<Long>()); }