类org.apache.commons.httpclient.cookie.CookieSpec源码实例Demo

下面列出了怎么用org.apache.commons.httpclient.cookie.CookieSpec的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: http4e   文件: HttpMethodBase.java
/**
 * This method is invoked immediately after 
 * {@link #readResponseHeaders(HttpState,HttpConnection)} and can be overridden by
 * sub-classes in order to provide custom response headers processing.

 * <p>
 * This implementation will handle the <tt>Set-Cookie</tt> and
 * <tt>Set-Cookie2</tt> headers, if any, adding the relevant cookies to
 * the given {@link HttpState}.
 * </p>
 *
 * @param state the {@link HttpState state} information associated with this method
 * @param conn the {@link HttpConnection connection} used to execute
 *        this HTTP method
 *
 * @see #readResponse
 * @see #readResponseHeaders
 */
protected void processResponseHeaders(HttpState state,
    HttpConnection conn) {
    LOG.trace("enter HttpMethodBase.processResponseHeaders(HttpState, "
        + "HttpConnection)");

    CookieSpec parser = getCookieSpec(state);

    // process set-cookie headers
    Header[] headers = getResponseHeaderGroup().getHeaders("set-cookie");
    processCookieHeaders(parser, headers, state, conn);

    // see if the cookie spec supports cookie versioning.
    if (parser instanceof CookieVersionSupport) {
        CookieVersionSupport versupport = (CookieVersionSupport) parser;
        if (versupport.getVersion() > 0) {
            // process set-cookie2 headers.
            // Cookie2 will replace equivalent Cookie instances
            headers = getResponseHeaderGroup().getHeaders("set-cookie2");
            processCookieHeaders(parser, headers, state, conn);
        }
    }
}
 
源代码2 项目: knopflerfish.org   文件: HttpMethodBase.java
/**
 * This method is invoked immediately after 
 * {@link #readResponseHeaders(HttpState,HttpConnection)} and can be overridden by
 * sub-classes in order to provide custom response headers processing.

 * <p>
 * This implementation will handle the <tt>Set-Cookie</tt> and
 * <tt>Set-Cookie2</tt> headers, if any, adding the relevant cookies to
 * the given {@link HttpState}.
 * </p>
 *
 * @param state the {@link HttpState state} information associated with this method
 * @param conn the {@link HttpConnection connection} used to execute
 *        this HTTP method
 *
 * @see #readResponse
 * @see #readResponseHeaders
 */
protected void processResponseHeaders(HttpState state,
    HttpConnection conn) {
    LOG.trace("enter HttpMethodBase.processResponseHeaders(HttpState, "
        + "HttpConnection)");

    CookieSpec parser = getCookieSpec(state);

    // process set-cookie headers
    Header[] headers = getResponseHeaderGroup().getHeaders("set-cookie");
    processCookieHeaders(parser, headers, state, conn);

    // see if the cookie spec supports cookie versioning.
    if (parser instanceof CookieVersionSupport) {
        CookieVersionSupport versupport = (CookieVersionSupport) parser;
        if (versupport.getVersion() > 0) {
            // process set-cookie2 headers.
            // Cookie2 will replace equivalent Cookie instances
            headers = getResponseHeaderGroup().getHeaders("set-cookie2");
            processCookieHeaders(parser, headers, state, conn);
        }
    }
}
 
源代码3 项目: knopflerfish.org   文件: HttpState.java
/**
 * Returns an array of {@link Cookie cookies} in this HTTP 
 * state that match the given request parameters.
 * 
 * @param domain the request domain
 * @param port the request port
 * @param path the request path
 * @param secure <code>true</code> when using HTTPS
 * 
 * @return an array of {@link Cookie cookies}.
 * 
 * @see #getCookies()
 * 
 * @deprecated use CookieSpec#match(String, int, String, boolean, Cookie)
 */
public synchronized Cookie[] getCookies(
    String domain, 
    int port, 
    String path, 
    boolean secure
) {
    LOG.trace("enter HttpState.getCookies(String, int, String, boolean)");

    CookieSpec matcher = CookiePolicy.getDefaultSpec();
    ArrayList list = new ArrayList(cookies.size());
    for (int i = 0, m = cookies.size(); i < m; i++) {
        Cookie cookie = (Cookie) (cookies.get(i));
        if (matcher.match(domain, port, path, secure, cookie)) {
            list.add(cookie);
        }
    }
    return (Cookie[]) (list.toArray(new Cookie[list.size()]));
}
 
源代码4 项目: http4e   文件: HttpMethodBase.java
/** 
 * Returns the actual cookie policy
 * 
 * @param state HTTP state. TODO: to be removed in the future
 * 
 * @return cookie spec
 */
private CookieSpec getCookieSpec(final HttpState state) {
    if (this.cookiespec == null) {
        int i = state.getCookiePolicy();
        if (i == -1) {
            this.cookiespec = CookiePolicy.getCookieSpec(this.params.getCookiePolicy());
        } else {
            this.cookiespec = CookiePolicy.getSpecByPolicy(i);
        }
        this.cookiespec.setValidDateFormats(
                (Collection)this.params.getParameter(HttpMethodParams.DATE_PATTERNS));
    }
    return this.cookiespec;
}
 
源代码5 项目: knopflerfish.org   文件: Cookie.java
/**
 * Return a textual representation of the cookie.
 * 
 * @return string.
 */
public String toExternalForm() {
    CookieSpec spec = null;
    if (getVersion() > 0) {
        spec = CookiePolicy.getDefaultSpec(); 
    } else {
        spec = CookiePolicy.getCookieSpec(CookiePolicy.NETSCAPE); 
    }
    return spec.formatCookie(this); 
}
 
源代码6 项目: knopflerfish.org   文件: Cookie.java
/**
 * <p>Compares two cookies to determine order for cookie header.</p>
 * <p>Most specific should be first. </p>
 * <p>This method is implemented so a cookie can be used as a comparator for
 * a SortedSet of cookies. Specifically it's used above in the 
 * createCookieHeader method.</p>
 * @param o1 The first object to be compared
 * @param o2 The second object to be compared
 * @return See {@link java.util.Comparator#compare(Object,Object)}
 */
public int compare(Object o1, Object o2) {
    LOG.trace("enter Cookie.compare(Object, Object)");

    if (!(o1 instanceof Cookie)) {
        throw new ClassCastException(o1.getClass().getName());
    }
    if (!(o2 instanceof Cookie)) {
        throw new ClassCastException(o2.getClass().getName());
    }
    Cookie c1 = (Cookie) o1;
    Cookie c2 = (Cookie) o2;
    if (c1.getPath() == null && c2.getPath() == null) {
        return 0;
    } else if (c1.getPath() == null) {
        // null is assumed to be "/"
        if (c2.getPath().equals(CookieSpec.PATH_DELIM)) {
            return 0;
        } else {
            return -1;
        }
    } else if (c2.getPath() == null) {
        // null is assumed to be "/"
        if (c1.getPath().equals(CookieSpec.PATH_DELIM)) {
            return 0;
        } else {
            return 1;
        }
    } else {
        return c1.getPath().compareTo(c2.getPath());
    }
}
 
源代码7 项目: knopflerfish.org   文件: HttpMethodBase.java
/** 
 * Returns the actual cookie policy
 * 
 * @param state HTTP state. TODO: to be removed in the future
 * 
 * @return cookie spec
 */
private CookieSpec getCookieSpec(final HttpState state) {
    if (this.cookiespec == null) {
        int i = state.getCookiePolicy();
        if (i == -1) {
            this.cookiespec = CookiePolicy.getCookieSpec(this.params.getCookiePolicy());
        } else {
            this.cookiespec = CookiePolicy.getSpecByPolicy(i);
        }
        this.cookiespec.setValidDateFormats(
                (Collection)this.params.getParameter(HttpMethodParams.DATE_PATTERNS));
    }
    return this.cookiespec;
}
 
源代码8 项目: RestServices   文件: RestConsumer.java
public static List<Cookie> getResponseCookiesFromRequestResult(IContext context, RequestResult requestResult) throws MalformedURLException {
	if (requestResult == null)
		throw new IllegalArgumentException("No request result provided");
	
	List<Cookie> res = new ArrayList<Cookie>();
	JSONObject headers = new JSONObject(requestResult.get_ResponseHeaders());
	
	URL requestUrl = new URL(requestResult.getRequestUrl());
	CookieSpec spec = CookiePolicy.getDefaultSpec();
	
	if (headers.has("Set-Cookie")) {
		JSONArray cookies = headers.getJSONArray("Set-Cookie");
		for(int i = 0; i < cookies.length(); i++) {
			try {
				org.apache.commons.httpclient.Cookie[] innercookies = spec.parse(requestUrl.getHost(), requestUrl.getPort(), requestUrl.getPath(), "https".equals(requestUrl.getProtocol()), cookies.getString(i));
				for(org.apache.commons.httpclient.Cookie innercookie : innercookies) {
					Cookie cookie = new Cookie(context);
					cookie.setName(innercookie.getName());
					cookie.setValue(innercookie.getValue());
					cookie.setDomain(innercookie.getDomain());
					cookie.setPath(innercookie.getPath());
					cookie.setMaxAgeSeconds(innercookie.getExpiryDate() == null ? -1 : Math.round((innercookie.getExpiryDate().getTime() - System.currentTimeMillis()) / 1000L));
					res.add(cookie);
				}
			} catch (Exception e) {
				RestServices.LOGCONSUME.warn("Failed to parse cookie: " + e.getMessage(), e);
			}
		}
	}
	
	return res;
}
 
 类方法
 同包方法