List of usage examples for org.apache.http.impl.cookie BrowserCompatSpec BrowserCompatSpec
public BrowserCompatSpec()
From source file:org.sigmond.net.AsyncHttpTask.java
protected HttpRequestInfo doInBackground(HttpRequestInfo... params) { HttpRequestInfo rinfo = params[0];/*w ww. j a v a 2s . com*/ try { client.setCookieStore(rinfo.getCookieStore()); //cookie handling HttpResponse resp = client.execute(rinfo.getRequest()); //execute request //store any new cookies recieved CookieStore store = rinfo.getCookieStore(); Header[] allHeaders = resp.getAllHeaders(); CookieSpecBase base = new BrowserCompatSpec(); URI uri = rinfo.getRequest().getURI(); int port = uri.getPort(); if (port <= 0) port = 80; CookieOrigin origin = new CookieOrigin(uri.getHost(), port, uri.getPath(), false); for (Header header : allHeaders) { List<Cookie> parse = base.parse(header, origin); for (Cookie cookie : parse) { if (cookie.getValue() != null && cookie.getValue() != "") store.addCookie(cookie); } } rinfo.setCookieStore(store); //store the response rinfo.setResponse(resp); //process the response string. This is required in newer Android versions. //newer versions will not allow reading from a network response input stream in the main thread. rinfo.setResponseString(HttpUtils.responseToString(resp)); } catch (Exception e) { rinfo.setException(e); } return rinfo; }
From source file:org.droidparts.http.CookieJar.java
public CookieJar(Context ctx) { cookieSpec = new BrowserCompatSpec(); prefs = ctx.getSharedPreferences("droidparts_restclient_cookies", MODE_PRIVATE); }
From source file:org.xwiki.wysiwyg.internal.plugin.alfresco.server.SiteMinderAuthenticator.java
@Override public void authenticate(HttpRequestBase request) { List<Cookie> cookies = getSiteMinderCookies(); if (cookies.isEmpty()) { throw new RuntimeException("Failed to authenticate request: SiteMinder cookies are missing."); }/*from w ww . jav a 2 s.co m*/ for (Header header : new BrowserCompatSpec().formatCookies(cookies)) { request.addHeader(header); } }
From source file:org.esigate.http.HttpResponseUtils.java
/** * Removes ";jsessionid=<id>" from the url, if the session id is also set in "httpResponse". * <p>/*from w ww . ja v a 2 s.c om*/ * This methods first looks for the following header : * * <pre> * Set-Cookie: JSESSIONID= * </pre> * * If found and perfectly matches the jsessionid value in url, the complete jsessionid definition is removed from * the url. * * @param uri * original uri, may contains a jsessionid. * @param httpResponse * the response which set the jsessionId * @return uri, without jsession */ public static String removeSessionId(String uri, HttpResponse httpResponse) { CookieSpec cookieSpec = new BrowserCompatSpec(); // Dummy origin, used only by CookieSpec for setting the domain for the // cookie but we don't need it CookieOrigin cookieOrigin = new CookieOrigin("dummy", Http.DEFAULT_HTTP_PORT, "/", false); Header[] responseHeaders = httpResponse.getHeaders("Set-cookie"); String jsessionid = null; for (int i = 0; i < responseHeaders.length; i++) { Header header = responseHeaders[i]; try { List<Cookie> cookies = cookieSpec.parse(header, cookieOrigin); for (Cookie cookie : cookies) { if ("JSESSIONID".equalsIgnoreCase(cookie.getName())) { jsessionid = cookie.getValue(); } break; } } catch (MalformedCookieException ex) { LOG.warn("Malformed header: " + header.getName() + ": " + header.getValue()); } if (jsessionid != null) { break; } } if (jsessionid == null) { return uri; } return UriUtils.removeSessionId(jsessionid, uri); }
From source file:org.aliuge.crawler.fetcher.DefaultFetcher.java
public DefaultFetcher createFetcher(FetchConfig config) { // //from ww w.j a v a 2 s . c o m connectionManager = new PoolingHttpClientConnectionManager(); BasicCookieStore cookieStore = new BasicCookieStore(); CookieSpecProvider easySpecProvider = new CookieSpecProvider() { public CookieSpec create(HttpContext context) { return new BrowserCompatSpec() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // Oh, I am easy } }; } }; Registry<CookieSpecProvider> r = RegistryBuilder.<CookieSpecProvider>create() .register(CookieSpecs.BEST_MATCH, new BestMatchSpecFactory()) .register(CookieSpecs.BROWSER_COMPATIBILITY, new BrowserCompatSpecFactory()) .register("easy", easySpecProvider).build(); // Create global request configuration defaultRequestConfig = RequestConfig.custom().setCookieSpec("easy").setSocketTimeout(10000) .setConnectTimeout(10000).build(); connectionManager.setMaxTotal(config.getMaxTotalConnections()); connectionManager.setDefaultMaxPerRoute(config.getMaxConnectionsPerHost()); // Create an HttpClient with the given custom dependencies and // configuration. httpClient = HttpClients.custom().setConnectionManager(connectionManager).setDefaultCookieStore(cookieStore) .setDefaultCookieSpecRegistry(r) /* .setProxy(new HttpHost("myproxy", 8080)) */ .setDefaultRequestConfig(defaultRequestConfig).build(); if (connectionMonitorThread == null) { connectionMonitorThread = new IdleConnectionMonitorThread(connectionManager); } /* * connectionMonitorThread.start(); try { * connectionMonitorThread.join(); } catch (InterruptedException e) { // * TODO Auto-generated catch block e.printStackTrace(); } */ return this; }
From source file:com.baidu.rigel.biplatform.ac.util.HttpRequest.java
/** * ?HttpClientheadapplication/json/*ww w . j a v a2 s . com*/ * * @return HttpClient */ public static HttpClient getDefaultHttpClient(Map<String, String> params) { if (client == null) { CookieSpecProvider cookieSpecProvider = new CookieSpecProvider() { @Override public CookieSpec create(HttpContext context) { return new BrowserCompatSpec() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { //no check cookie } }; } }; Lookup<CookieSpecProvider> cookieSpecRegistry = RegistryBuilder.<CookieSpecProvider>create() .register(NO_CHECK_COOKIES, cookieSpecProvider).build(); String socketTimeout = "50000"; String connTimeout = "1000"; if (params != null) { if (params.containsKey(SOCKET_TIME_OUT)) { socketTimeout = params.get(SOCKET_TIME_OUT); } if (params.containsKey(CONNECTION_TIME_OUT)) { socketTimeout = params.get(CONNECTION_TIME_OUT); } } // cookie? RequestConfig requestConfigBuilder = RequestConfig.custom().setCookieSpec(NO_CHECK_COOKIES) .setSocketTimeout(Integer.valueOf(socketTimeout)) // ms ??? .setConnectTimeout(Integer.valueOf(connTimeout)) // ms??? .build(); client = HttpClients.custom().setDefaultCookieSpecRegistry(cookieSpecRegistry) .setDefaultRequestConfig(requestConfigBuilder).build(); } return client; }
From source file:de.betterform.connector.http.AbstractHTTPConnector.java
protected void execute(HttpRequestBase httpRequestBase) throws Exception { // (new HttpClient()).executeMethod(httpMethod); //HttpClient client = new HttpClient(); HttpParams httpParams = new BasicHttpParams(); DefaultHttpClient client = ConnectorFactory.getFactory().getHttpClient(httpParams); if (!getContext().containsKey(AbstractHTTPConnector.SSL_CUSTOM_SCHEME)) { LOGGER.debug("SSL_CUSTOM_SCHEME"); LOGGER.debug("SSL_CUSTOM_SCHEME: Factory: " + Config.getInstance().getProperty(AbstractHTTPConnector.HTTPCLIENT_SSL_CONTEXT)); String contextPath = Config.getInstance().getProperty(AbstractHTTPConnector.HTTPCLIENT_SSL_CONTEXT); if (contextPath != null) { initSSLScheme(contextPath);//from ww w.j a v a 2 s .co m } } if (LOGGER.isDebugEnabled()) { LOGGER.debug("context params>>>"); Map map = getContext(); Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next().toString(); Object value = map.get(key); if (value != null) LOGGER.debug(key + "=" + value.toString()); } LOGGER.debug("<<<end params"); } String username = null; String password = null; String realm = null; //add custom header to signal XFormsFilter to not process this internal request //httpMethod.setRequestHeader(BetterFORMConstants.BETTERFORM_INTERNAL,"true"); httpRequestBase.addHeader(BetterFORMConstants.BETTERFORM_INTERNAL, "true"); /// *** copy all keys in map HTTP_REQUEST_HEADERS as http-submissionHeaders if (getContext().containsKey(HTTP_REQUEST_HEADERS)) { RequestHeaders httpRequestHeaders = (RequestHeaders) getContext().get(HTTP_REQUEST_HEADERS); // Iterator it = Map headersToAdd = new HashMap(); for (RequestHeader header : httpRequestHeaders.getAllHeaders()) { String headername = header.getName(); String headervalue = header.getValue(); if (headername.equals("username")) { username = headervalue; } else if (headername.equals("password")) { password = headervalue; } else if (headername.equals("realm")) { realm = headervalue; } else { if (headersToAdd.containsKey(headername)) { String formerValue = (String) headersToAdd.get(headername); headersToAdd.put(headername, formerValue + "," + headervalue); } else { if (headername.equals("accept-encoding")) { // do nothing LOGGER.debug("do not add accept-encoding:" + headervalue + " for request"); } else { headersToAdd.put(headername, headervalue); if (LOGGER.isDebugEnabled()) { LOGGER.debug("setting header: " + headername + " value: " + headervalue); } } } } } Iterator keyIterator = headersToAdd.keySet().iterator(); while (keyIterator.hasNext()) { String key = (String) keyIterator.next(); //httpMethod.setRequestHeader(new Header(key,(String) headersToAdd.get(key))); httpRequestBase.setHeader(key, (String) headersToAdd.get(key)); //httpRequestBase.addHeader(key, (String) headersToAdd.get(key)); } } if (httpRequestBase.containsHeader("Content-Length")) { //remove content-length if present httpclient will recalucalte the value. httpRequestBase.removeHeaders("Content-Length"); } if (username != null && password != null) { URI targetURI = null; //targetURI = httpMethod.getURI(); targetURI = httpRequestBase.getURI(); //client.getParams().setAuthenticationPreemptive(true); Credentials defaultcreds = new UsernamePasswordCredentials(username, password); if (realm == null) { realm = AuthScope.ANY_REALM; } //client.getState().setCredentials(new AuthScope(targetURI.getHost(), targetURI.getPort(), realm), defaultcreds); client.getCredentialsProvider() .setCredentials(new AuthScope(targetURI.getHost(), targetURI.getPort(), realm), defaultcreds); AuthCache authCache = new BasicAuthCache(); BasicScheme basicAuth = new BasicScheme(); authCache.put(new HttpHost(targetURI.getHost()), basicAuth); BasicHttpContext localContext = new BasicHttpContext(); localContext.setAttribute(ClientContext.AUTH_CACHE, authCache); //Needed? httpMethod.setDoAuthentication(true); } //alternative method for non-tomcat servers if (getContext().containsKey(REQUEST_COOKIE)) { //HttpState state = client.getState(); HttpParams state = client.getParams(); //state.setCookiePolicy(CookiePolicy.COMPATIBILITY); state.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY); if (getContext().get(REQUEST_COOKIE) instanceof Cookie[]) { Cookie[] cookiesIn = (Cookie[]) getContext().get(REQUEST_COOKIE); if (cookiesIn[0] != null) { for (int i = 0; i < cookiesIn.length; i++) { Cookie cookie = cookiesIn[i]; //state.addCookie(cookie); client.getCookieStore().addCookie(cookie); } /* Cookie[] cookies = state.getCookies(); Header cookieOut = new CookieSpecBase().formatCookieHeader(cookies); httpMethod.setRequestHeader(cookieOut); client.setState(state); */ List<Cookie> cookies = client.getCookieStore().getCookies(); List<Header> cookieHeaders = new BrowserCompatSpec().formatCookies(cookies); Header[] headers = cookieHeaders.toArray(new Header[0]); for (int i = 0; i < headers.length; i++) { httpRequestBase.addHeader(headers[i]); } client.setParams(state); } } else { throw new MalformedCookieException( "Cookies must be passed as org.apache.commons.httpclient.Cookie objects."); } } if (getContext().containsKey(AbstractHTTPConnector.SSL_CUSTOM_SCHEME)) { LOGGER.debug("Using customSSL-Protocol-Handler"); Iterator<Scheme> schemes = ((Vector<Scheme>) getContext().get(AbstractHTTPConnector.SSL_CUSTOM_SCHEME)) .iterator(); while (schemes.hasNext()) { client.getConnectionManager().getSchemeRegistry().register(schemes.next()); } } if (httpRequestBase.getURI().isAbsolute()) { httpRequestBase.setHeader("host", httpRequestBase.getURI().getHost()); } HttpResponse httpResponse = client.execute(httpRequestBase); statusCode = httpResponse.getStatusLine().getStatusCode(); reasonPhrase = httpResponse.getStatusLine().getReasonPhrase(); try { if (statusCode >= 300) { // Allow 302 only if (statusCode != 302) { throw new XFormsInternalSubmitException(statusCode, reasonPhrase, EntityUtils.toString(httpResponse.getEntity()), XFormsConstants.RESOURCE_ERROR); } } this.handleHttpMethod(httpResponse); } catch (Exception e) { LOGGER.trace("AbstractHTTPConnector Exception: ", e); try { throw new XFormsInternalSubmitException(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine().getReasonPhrase(), EntityUtils.toString(httpResponse.getEntity()), XFormsConstants.RESOURCE_ERROR); } catch (IOException e1) { throw new XFormsInternalSubmitException(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine().getReasonPhrase(), XFormsConstants.RESOURCE_ERROR); } } }
From source file:de.nware.app.hsDroid.provider.onlineService2Provider.java
/** * Stellt HTTP Anfrage und liefert deren Antwort zurck. * //w ww .ja v a 2 s . c om * @param url * die formatierte URL * @return die HTML/XML Antwort * @throws Exception */ private synchronized String getResponse(String url) { // Log.d(TAG, "URL: " + url); final HttpPost httpPost = new HttpPost(url); httpPost.addHeader("User-Agent", USER_AGENT); CookieSpecBase cookieSpecBase = new BrowserCompatSpec(); List<Header> cookieHeader = cookieSpecBase.formatCookies(StaticSessionData.cookies); httpPost.setHeader(cookieHeader.get(0)); // FIXME geht nicht als int Preference, wegen // preferenceScreen/editText... int connectionTimeoutMillis = Integer.valueOf(StaticSessionData.sPreferences .getString(getContext().getString(R.string.Preference_ConnectionTimeout), "1500")); HttpClient client = HttpClientFactory.getHttpClient(connectionTimeoutMillis); try { final HttpResponse response = client.execute(httpPost); // Prfen ob HTTP Antwort ok ist. final StatusLine status = response.getStatusLine(); if (status.getStatusCode() != HttpStatus.SC_OK) { Log.d(TAG, "http status code: " + status.getStatusCode()); throw new RuntimeException("Ungltige Antwort vom Server: " + status.toString()); } // Hole Content Stream final HttpEntity entity = response.getEntity(); // content. final InputStream inputStream = entity.getContent(); final ByteArrayOutputStream content = new ByteArrayOutputStream(); // response lesen in ByteArrayOutputStream. int readBytes = 0; while ((readBytes = inputStream.read(mContentBuffer)) != -1) { content.write(mContentBuffer, 0, readBytes); } // Stream nach String String output = new String(content.toByteArray()); // Stream freigeben content.close(); return output; } catch (IOException e) { Log.d(TAG, e.getMessage()); throw new RuntimeException("Verbindung fehlgeschlagen: " + e.getMessage(), e); } }
From source file:org.herrlado.engeo.Utils.java
/** * Update cookies from response.//from w w w. j a v a 2 s . c o m * * @param cookies * old {@link Cookie} list * @param headers * {@link Header}s from {@link HttpResponse} * @param url * requested URL * @throws URISyntaxException * malformed URI * @throws MalformedCookieException * malformed {@link Cookie} */ @Deprecated public static void updateCookies(final ArrayList<Cookie> cookies, final Header[] headers, final String url) throws URISyntaxException, MalformedCookieException { final URI uri = new URI(url); int port = uri.getPort(); if (port < 0) { if (url.startsWith("https")) { port = PORT_HTTPS; } else { port = PORT_HTTP; } } final CookieOrigin origin = new CookieOrigin(uri.getHost(), port, uri.getPath(), false); final CookieSpecBase cookieSpecBase = new BrowserCompatSpec(); String name; String value; for (final Header header : headers) { for (final Cookie cookie : cookieSpecBase.parse(header, origin)) { // THE cookie name = cookie.getName(); value = cookie.getValue(); if (value == null || value.equals("")) { continue; } for (final Cookie c : cookies) { if (name.equals(c.getName())) { cookies.remove(c); cookies.add(cookie); name = null; break; } } if (name != null) { cookies.add(cookie); } } } }