当前位置: 首页>>代码示例>>Java>>正文


Java HttpRequest.getFirstHeader方法代码示例

本文整理汇总了Java中ch.boye.httpclientandroidlib.HttpRequest.getFirstHeader方法的典型用法代码示例。如果您正苦于以下问题:Java HttpRequest.getFirstHeader方法的具体用法?Java HttpRequest.getFirstHeader怎么用?Java HttpRequest.getFirstHeader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ch.boye.httpclientandroidlib.HttpRequest的用法示例。


在下文中一共展示了HttpRequest.getFirstHeader方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: requestHasWeakETagAndRange

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
private RequestProtocolError requestHasWeakETagAndRange(final HttpRequest request) {
    // TODO: Should these be looking at all the headers marked as Range?
    final String method = request.getRequestLine().getMethod();
    if (!(HeaderConstants.GET_METHOD.equals(method))) {
        return null;
    }

    final Header range = request.getFirstHeader(HeaderConstants.RANGE);
    if (range == null) {
        return null;
    }

    final Header ifRange = request.getFirstHeader(HeaderConstants.IF_RANGE);
    if (ifRange == null) {
        return null;
    }

    final String val = ifRange.getValue();
    if (val.startsWith("W/")) {
        return RequestProtocolError.WEAK_ETAG_AND_RANGE_ERROR;
    }

    return null;
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:25,代码来源:RequestProtocolCompliance.java

示例2: storeRequestIfModifiedSinceFor304Response

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
/**
 * For 304 Not modified responses, adds a "Last-Modified" header with the
 * value of the "If-Modified-Since" header passed in the request. This
 * header is required to be able to reuse match the cache entry for
 * subsequent requests but as defined in http specifications it is not
 * included in 304 responses by backend servers. This header will not be
 * included in the resulting response.
 */
private void storeRequestIfModifiedSinceFor304Response(
        final HttpRequest request, final HttpResponse backendResponse) {
    if (backendResponse.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_MODIFIED) {
        final Header h = request.getFirstHeader("If-Modified-Since");
        if (h != null) {
            backendResponse.addHeader("Last-Modified", h.getValue());
        }
    }
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:18,代码来源:CachingExec.java

示例3: decrementOPTIONSMaxForwardsIfGreaterThen0

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
private void decrementOPTIONSMaxForwardsIfGreaterThen0(final HttpRequest request) {
    if (!HeaderConstants.OPTIONS_METHOD.equals(request.getRequestLine().getMethod())) {
        return;
    }

    final Header maxForwards = request.getFirstHeader(HeaderConstants.MAX_FORWARDS);
    if (maxForwards == null) {
        return;
    }

    request.removeHeaders(HeaderConstants.MAX_FORWARDS);
    final int currentMaxForwards = Integer.parseInt(maxForwards.getValue());

    request.setHeader(HeaderConstants.MAX_FORWARDS, Integer.toString(currentMaxForwards - 1));
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:16,代码来源:RequestProtocolCompliance.java

示例4: requestHasWeekETagForPUTOrDELETEIfMatch

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
private RequestProtocolError requestHasWeekETagForPUTOrDELETEIfMatch(final HttpRequest request) {
    // TODO: Should these be looking at all the headers marked as If-Match/If-None-Match?

    final String method = request.getRequestLine().getMethod();
    if (!(HeaderConstants.PUT_METHOD.equals(method) || HeaderConstants.DELETE_METHOD
            .equals(method))) {
        return null;
    }

    final Header ifMatch = request.getFirstHeader(HeaderConstants.IF_MATCH);
    if (ifMatch != null) {
        final String val = ifMatch.getValue();
        if (val.startsWith("W/")) {
            return RequestProtocolError.WEAK_ETAG_ON_PUTDELETE_METHOD_ERROR;
        }
    } else {
        final Header ifNoneMatch = request.getFirstHeader(HeaderConstants.IF_NONE_MATCH);
        if (ifNoneMatch == null) {
            return null;
        }

        final String val2 = ifNoneMatch.getValue();
        if (val2.startsWith("W/")) {
            return RequestProtocolError.WEAK_ETAG_ON_PUTDELETE_METHOD_ERROR;
        }
    }

    return null;
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:30,代码来源:RequestProtocolCompliance.java

示例5: ensurePartialContentIsNotSentToAClientThatDidNotRequestIt

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
private void ensurePartialContentIsNotSentToAClientThatDidNotRequestIt(final HttpRequest request,
        final HttpResponse response) throws IOException {
    if (request.getFirstHeader(HeaderConstants.RANGE) != null
            || response.getStatusLine().getStatusCode() != HttpStatus.SC_PARTIAL_CONTENT) {
        return;
    }

    consumeBody(response);
    throw new ClientProtocolException(UNEXPECTED_PARTIAL_CONTENT);
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:11,代码来源:ResponseProtocolCompliance.java

示例6: flushInvalidatedCacheEntries

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
/**
 * Remove cache entries from the cache that are no longer fresh or
 * have been invalidated in some way.
 *
 * @param host The backend host we are talking to
 * @param req The HttpRequest to that host
 */
public void flushInvalidatedCacheEntries(final HttpHost host, final HttpRequest req)  {
    if (requestShouldNotBeCached(req)) {
        log.debug("Request should not be cached");

        final String theUri = cacheKeyGenerator.getURI(host, req);

        final HttpCacheEntry parent = getEntry(theUri);

        log.debug("parent entry: " + parent);

        if (parent != null) {
            for (final String variantURI : parent.getVariantMap().values()) {
                flushEntry(variantURI);
            }
            flushEntry(theUri);
        }
        final URL reqURL = getAbsoluteURL(theUri);
        if (reqURL == null) {
            log.error("Couldn't transform request into valid URL");
            return;
        }
        final Header clHdr = req.getFirstHeader("Content-Location");
        if (clHdr != null) {
            final String contentLocation = clHdr.getValue();
            if (!flushAbsoluteUriFromSameHost(reqURL, contentLocation)) {
                flushRelativeUriFromSameHost(reqURL, contentLocation);
            }
        }
        final Header lHdr = req.getFirstHeader("Location");
        if (lHdr != null) {
            flushAbsoluteUriFromSameHost(reqURL, lHdr.getValue());
        }
    }
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:42,代码来源:CacheInvalidator.java

示例7: process

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
public void process(final HttpResponse response, final HttpContext context)
        throws HttpException, IOException {
    Args.notNull(response, "HTTP response");

    final HttpCoreContext corecontext = HttpCoreContext.adapt(context);

    // Always drop connection after certain type of responses
    final int status = response.getStatusLine().getStatusCode();
    if (status == HttpStatus.SC_BAD_REQUEST ||
            status == HttpStatus.SC_REQUEST_TIMEOUT ||
            status == HttpStatus.SC_LENGTH_REQUIRED ||
            status == HttpStatus.SC_REQUEST_TOO_LONG ||
            status == HttpStatus.SC_REQUEST_URI_TOO_LONG ||
            status == HttpStatus.SC_SERVICE_UNAVAILABLE ||
            status == HttpStatus.SC_NOT_IMPLEMENTED) {
        response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
        return;
    }
    final Header explicit = response.getFirstHeader(HTTP.CONN_DIRECTIVE);
    if (explicit != null && HTTP.CONN_CLOSE.equalsIgnoreCase(explicit.getValue())) {
        // Connection persistence explicitly disabled
        return;
    }
    // Always drop connection for HTTP/1.0 responses and below
    // if the content body cannot be correctly delimited
    final HttpEntity entity = response.getEntity();
    if (entity != null) {
        final ProtocolVersion ver = response.getStatusLine().getProtocolVersion();
        if (entity.getContentLength() < 0 &&
                (!entity.isChunked() || ver.lessEquals(HttpVersion.HTTP_1_0))) {
            response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
            return;
        }
    }
    // Drop connection if requested by the client or request was <= 1.0
    final HttpRequest request = corecontext.getRequest();
    if (request != null) {
        final Header header = request.getFirstHeader(HTTP.CONN_DIRECTIVE);
        if (header != null) {
            response.setHeader(HTTP.CONN_DIRECTIVE, header.getValue());
        } else if (request.getProtocolVersion().lessEquals(HttpVersion.HTTP_1_0)) {
            response.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
        }
    }
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:46,代码来源:ResponseConnControl.java

示例8: hasUnsupportedConditionalHeaders

import ch.boye.httpclientandroidlib.HttpRequest; //导入方法依赖的package包/类
private boolean hasUnsupportedConditionalHeaders(final HttpRequest request) {
    return (request.getFirstHeader(HeaderConstants.IF_RANGE) != null
            || request.getFirstHeader(HeaderConstants.IF_MATCH) != null
            || hasValidDateField(request, HeaderConstants.IF_UNMODIFIED_SINCE));
}
 
开发者ID:mozilla-mobile,项目名称:FirefoxData-android,代码行数:6,代码来源:CachedResponseSuitabilityChecker.java


注:本文中的ch.boye.httpclientandroidlib.HttpRequest.getFirstHeader方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。