亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? httpmethodbase.java

?? 一個基于lucene&heritrix的搜索引擎
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        buf.append(version);        buf.append("\r\n");                return buf.toString();    }        /**     * This method is invoked immediately after      * {@link #readResponseBody(HttpState,HttpConnection)} and can be overridden by     * sub-classes in order to provide custom body processing.     *     * <p>     * This implementation does nothing.     * </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 #readResponseBody     */    protected void processResponseBody(HttpState state, HttpConnection conn) {    }    /**     * 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)");        Header[] headers = getResponseHeaderGroup().getHeaders("set-cookie2");        //Only process old style set-cookie headers if new style headres        //are not present        if (headers.length == 0) {             headers = getResponseHeaderGroup().getHeaders("set-cookie");        }                CookieSpec parser = getCookieSpec(state);        String host = this.params.getVirtualHost();        if (host == null) {            host = conn.getHost();        }        for (int i = 0; i < headers.length; i++) {            Header header = headers[i];            Cookie[] cookies = null;            try {                cookies = parser.parse(                  host,                  conn.getPort(),                  getPath(),                  conn.isSecure(),                  header);            } catch (MalformedCookieException e) {                if (LOG.isWarnEnabled()) {                    LOG.warn("Invalid cookie header: \""                         + header.getValue()                         + "\". " + e.getMessage());                }            }            if (cookies != null) {                for (int j = 0; j < cookies.length; j++) {                    Cookie cookie = cookies[j];                    try {                        parser.validate(                          host,                          conn.getPort(),                          getPath(),                          conn.isSecure(),                          cookie);                        state.addCookie(cookie);                        if (LOG.isDebugEnabled()) {                            LOG.debug("Cookie accepted: \""                                 + parser.formatCookie(cookie) + "\"");                        }                    } catch (MalformedCookieException e) {                        if (LOG.isWarnEnabled()) {                            LOG.warn("Cookie rejected: \"" + parser.formatCookie(cookie)                                 + "\". " + e.getMessage());                        }                    }                }            }        }    }    /**     * This method is invoked immediately after      * {@link #readStatusLine(HttpState,HttpConnection)} and can be overridden by     * sub-classes in order to provide custom response status line processing.     *     * @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 #readStatusLine     */    protected void processStatusLine(HttpState state, HttpConnection conn) {    }    /**     * Reads the response from the given {@link HttpConnection connection}.     *     * <p>     * The response is processed as the following sequence of actions:     *     * <ol>     * <li>     * {@link #readStatusLine(HttpState,HttpConnection)} is     * invoked to read the request line.     * </li>     * <li>     * {@link #processStatusLine(HttpState,HttpConnection)}     * is invoked, allowing the method to process the status line if     * desired.     * </li>     * <li>     * {@link #readResponseHeaders(HttpState,HttpConnection)} is invoked to read     * the associated headers.     * </li>     * <li>     * {@link #processResponseHeaders(HttpState,HttpConnection)} is invoked, allowing     * the method to process the headers if desired.     * </li>     * <li>     * {@link #readResponseBody(HttpState,HttpConnection)} is     * invoked to read the associated body (if any).     * </li>     * <li>     * {@link #processResponseBody(HttpState,HttpConnection)} is invoked, allowing the     * method to process the response body if desired.     * </li>     * </ol>     *     * Subclasses may want to override one or more of the above methods to to     * customize the processing. (Or they may choose to override this method     * if dramatically different processing is required.)     * </p>     *     * @param state the {@link HttpState state} information associated with this method     * @param conn the {@link HttpConnection connection} used to execute     *        this HTTP method     *     * @throws IOException if an I/O (transport) error occurs. Some transport exceptions     *                     can be recovered from.     * @throws HttpException  if a protocol exception occurs. Usually protocol exceptions      *                    cannot be recovered from.     */    protected void readResponse(HttpState state, HttpConnection conn)    throws IOException, HttpException {        LOG.trace(        "enter HttpMethodBase.readResponse(HttpState, HttpConnection)");        // Status line & line may have already been received        // if 'expect - continue' handshake has been used        while (this.statusLine == null) {            readStatusLine(state, conn);            processStatusLine(state, conn);            readResponseHeaders(state, conn);            processResponseHeaders(state, conn);                        int status = this.statusLine.getStatusCode();            if ((status >= 100) && (status < 200)) {                if (LOG.isInfoEnabled()) {                    LOG.info("Discarding unexpected response: " + this.statusLine.toString());                 }                this.statusLine = null;            }        }        readResponseBody(state, conn);        processResponseBody(state, conn);    }    /**     * Read the response body from the given {@link HttpConnection}.     *     * <p>     * The current implementation wraps the socket level stream with     * an appropriate stream for the type of response (chunked, content-length,     * or auto-close).  If there is no response body, the connection associated     * with the request will be returned to the connection manager.     * </p>     *     * <p>     * Subclasses may want to override this method to to customize the     * processing.     * </p>     *     * @param state the {@link HttpState state} information associated with this method     * @param conn the {@link HttpConnection connection} used to execute     *        this HTTP method     *     * @throws IOException if an I/O (transport) error occurs. Some transport exceptions     *                     can be recovered from.     * @throws HttpException  if a protocol exception occurs. Usually protocol exceptions      *                    cannot be recovered from.     *     * @see #readResponse     * @see #processResponseBody     */    protected void readResponseBody(HttpState state, HttpConnection conn)    throws IOException, HttpException {        LOG.trace(            "enter HttpMethodBase.readResponseBody(HttpState, HttpConnection)");        // assume we are not done with the connection if we get a stream        InputStream stream = readResponseBody(conn);        if (stream == null) {            // done using the connection!            responseBodyConsumed();        } else {            conn.setLastResponseInputStream(stream);            setResponseStream(stream);        }    }    /**     * Returns the response body as an {@link InputStream input stream}     * corresponding to the values of the <tt>Content-Length</tt> and      * <tt>Transfer-Encoding</tt> headers. If no response body is available     * returns <tt>null</tt>.     * <p>     *     * @see #readResponse     * @see #processResponseBody     *     * @param conn the {@link HttpConnection connection} used to execute     *        this HTTP method     *     * @throws IOException if an I/O (transport) error occurs. Some transport exceptions     *                     can be recovered from.     * @throws HttpException  if a protocol exception occurs. Usually protocol exceptions      *                    cannot be recovered from.     */    private InputStream readResponseBody(HttpConnection conn)        throws HttpException, IOException {        LOG.trace("enter HttpMethodBase.readResponseBody(HttpConnection)");        responseBody = null;        InputStream is = conn.getResponseInputStream();        if (Wire.CONTENT_WIRE.enabled()) {            is = new WireLogInputStream(is, Wire.CONTENT_WIRE);        }        InputStream result = null;        Header transferEncodingHeader = responseHeaders.getFirstHeader("Transfer-Encoding");        // We use Transfer-Encoding if present and ignore Content-Length.        // RFC2616, 4.4 item number 3        if (transferEncodingHeader != null) {            String transferEncoding = transferEncodingHeader.getValue();            if (!"chunked".equalsIgnoreCase(transferEncoding)                 && !"identity".equalsIgnoreCase(transferEncoding)) {                if (LOG.isWarnEnabled()) {                    LOG.warn("Unsupported transfer encoding: " + transferEncoding);                }            }            HeaderElement[] encodings = transferEncodingHeader.getElements();            // The chunked encoding must be the last one applied            // RFC2616, 14.41            int len = encodings.length;                        if ((len > 0) && ("chunked".equalsIgnoreCase(encodings[len - 1].getName()))) {                 // if response body is empty                if (conn.isResponseAvailable(conn.getParams().getSoTimeout())) {                    result = new ChunkedInputStream(is, this);                } else {                    if (getParams().isParameterTrue(HttpMethodParams.STRICT_TRANSFER_ENCODING)) {                        throw new ProtocolException("Chunk-encoded body declared but not sent");                    } else {                        LOG.warn("Chunk-encoded body missing");                    }                }            } else {                LOG.info("Response content is not chunk-encoded");                // The connection must be terminated by closing                 // the socket as per RFC 2616, 3.6                setConnectionCloseForced(true);                result = is;              }        } else {            long expectedLength = getResponseContentLength();            if (expectedLength == -1) {                Header connectionHeader = responseHeaders.getFirstHeader("Connection");                String connectionDirective = null;                if (connectionHeader != null) {                    connectionDirective = connectionHeader.getValue();                }                if (this.effectiveVersion.greaterEquals(HttpVersion.HTTP_1_1) &&                     !"close".equalsIgnoreCase(connectionDirective)) {                    LOG.info("Response content length is not known");                    setConnectionCloseForced(true);                }                result = is;                        } else {                result = new ContentLengthInputStream(is, expectedLength);            }        }         // See if the response is supposed to have a response body        if (!canResponseHaveBody(statusLine.getStatusCode())) {            result = null;        }        // if there is a result - ALWAYS wrap it in an observer which will        // close the underlying stream as soon as it is consumed, and notify        // the watcher that the stream has been consumed.        if (result != null) {            result = new AutoCloseInputStream(                result,                new ResponseConsumedWatcher() {                    public void responseConsumed() {                        responseBodyConsumed();                    }                }            );        }        return result;    }    /**     * Reads the response headers from the given {@link HttpConnection connection}.     *     * <p>     * Subclasses may want to override this method to to customize the     * processing.     * </p>     *     * <p>     * "It must be possible to combine the multiple header fields into one     * "field-name: field-value" pair, without changing the semantics of the     * message, by appending each subsequent field-value to the first, each     * separated by a comma." - HTTP/1.0 (4.3)     * </p>     *     * @param state the {@link HttpState state} information associated with this method     * @param conn the {@link HttpConnection connection} used to execute     *        this HTTP method     *     * @throws IOException if an I/O (transport) error occurs. Some transport exceptions     *                     can be recovered

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产丝袜视频| 日韩精品一区二区在线| 日本成人在线不卡视频| 久久众筹精品私拍模特| 99国产欧美久久久精品| 日韩成人一级大片| 中文字幕一区二区在线观看| 欧美一区二区网站| 懂色av一区二区三区免费看| 亚洲午夜免费电影| 国产亚洲精品久| 911精品国产一区二区在线| 成人一级黄色片| 亚洲美女视频在线| 久久久久国色av免费看影院| 欧美在线观看一二区| 水蜜桃久久夜色精品一区的特点| 久久免费视频色| 欧美日韩国产免费一区二区| 成人黄动漫网站免费app| 日韩国产欧美在线视频| 亚洲人精品午夜| 欧美mv和日韩mv的网站| 欧美日韩一区小说| aaa亚洲精品一二三区| 久久国产日韩欧美精品| 亚洲午夜久久久久中文字幕久| 亚洲精品一区二区精华| 欧美老女人第四色| 一本大道久久精品懂色aⅴ | 欧美性感一区二区三区| 秋霞电影一区二区| 一区二区三区日韩精品| 国产欧美日本一区视频| 日韩一级黄色片| 在线观看网站黄不卡| 国模套图日韩精品一区二区| 五月综合激情网| 亚洲乱码日产精品bd| 国产精品丝袜在线| 国产日韩欧美亚洲| 91精品国产综合久久婷婷香蕉 | 97精品电影院| 国产成人免费视| 国产精品1区2区| 麻豆精品国产传媒mv男同 | 色狠狠色狠狠综合| 94-欧美-setu| av一区二区三区黑人| 风间由美一区二区三区在线观看 | 久久亚洲一区二区三区四区| 日韩天堂在线观看| 日韩午夜在线影院| 精品视频免费在线| 欧美精品一二三四| 欧美日本在线看| 欧美巨大另类极品videosbest | 色综合久久久久综合| 成人激情免费视频| eeuss影院一区二区三区| 精品一区二区三区在线播放视频 | 国产在线播放一区| 国产激情偷乱视频一区二区三区| 国产99久久久国产精品潘金| 国产91丝袜在线播放九色| hitomi一区二区三区精品| 成人黄色一级视频| 91麻豆国产自产在线观看| 91免费版在线看| 欧美私模裸体表演在线观看| 日本二三区不卡| thepron国产精品| 在线视频一区二区三区| 91 com成人网| 精品国产制服丝袜高跟| 国产欧美日韩精品一区| 亚洲视频精选在线| 亚洲一区二区精品久久av| 五月综合激情婷婷六月色窝| 免费观看一级欧美片| 国产suv精品一区二区三区| 91免费国产在线| 欧美成人免费网站| 一区二区三区四区亚洲| 精品影视av免费| 色婷婷久久综合| 久久嫩草精品久久久精品| 亚洲一区自拍偷拍| 国产激情视频一区二区三区欧美 | 在线播放日韩导航| 国产欧美1区2区3区| 视频一区视频二区在线观看| av一区二区三区四区| 日韩精品在线一区二区| 洋洋av久久久久久久一区| 国产成人av福利| 91.麻豆视频| 亚洲自拍与偷拍| 成人激情午夜影院| 精品不卡在线视频| 视频精品一区二区| 在线影视一区二区三区| 久久精品亚洲一区二区三区浴池| 天天影视涩香欲综合网| 91在线一区二区三区| 亚洲精品一区二区三区影院| 婷婷综合另类小说色区| 色综合久久久久综合体桃花网| 久久蜜桃av一区精品变态类天堂| 视频在线观看一区| 欧美日韩激情在线| 亚洲精品ww久久久久久p站| 成人av网站免费观看| 久久久三级国产网站| 蜜芽一区二区三区| 91精品国产一区二区三区香蕉 | 成人免费高清在线观看| 精品国产乱码久久久久久老虎| 婷婷中文字幕综合| 欧美特级限制片免费在线观看| 亚洲精品高清在线| 99精品久久只有精品| 国产精品高潮久久久久无| 国产成人免费网站| 久久影院午夜片一区| 国产在线一区观看| 精品99一区二区三区| 久久精品99国产精品| 日韩精品一区二区三区swag| 日本美女一区二区三区视频| 欧美另类一区二区三区| 日韩不卡在线观看日韩不卡视频| 欧美丰满高潮xxxx喷水动漫| 亚洲3atv精品一区二区三区| 欧美日韩国产高清一区二区三区| 亚洲综合久久久| 欧美日韩激情一区二区三区| 日产国产高清一区二区三区| 日韩一区二区三区在线| 久久国产综合精品| 久久久国产精品不卡| 成人av影视在线观看| 自拍偷拍欧美精品| 日本福利一区二区| 午夜久久久影院| 日韩欧美一级二级三级| 国产精品资源站在线| 国产免费观看久久| 91在线精品一区二区| 亚洲第一av色| 日韩精品一区二区在线| 国产91清纯白嫩初高中在线观看| 国产精品美女久久久久aⅴ| 色综合久久久久久久久| 丝袜a∨在线一区二区三区不卡| 91精品麻豆日日躁夜夜躁| 国产乱人伦偷精品视频免下载| 国产女主播一区| 在线视频一区二区三区| 蜜乳av一区二区| 中文子幕无线码一区tr| 在线精品亚洲一区二区不卡| 日韩和欧美一区二区三区| 精品日韩成人av| 不卡一卡二卡三乱码免费网站| 亚洲福利一区二区| 久久蜜桃av一区二区天堂 | 69精品人人人人| 精品一二线国产| 国产精品进线69影院| 欧美日韩你懂的| 国产精品一区二区不卡| 亚洲一区二区精品视频| 337p日本欧洲亚洲大胆色噜噜| 色综合天天做天天爱| 日产国产高清一区二区三区| 国产精品传媒视频| 91精品国产欧美一区二区18| av电影在线不卡| 久久国产三级精品| 亚洲另类色综合网站| 欧美变态凌虐bdsm| 91国偷自产一区二区开放时间| 麻豆国产精品一区二区三区| 亚洲欧洲成人自拍| 欧美v国产在线一区二区三区| 99精品久久久久久| 狠狠色丁香婷综合久久| 亚洲精品乱码久久久久| 久久久久久免费网| 欧美日韩成人综合天天影院| 播五月开心婷婷综合| 久久疯狂做爰流白浆xx| 亚洲成人一区在线| 成人免费在线观看入口| 精品国产a毛片| 欧美日韩视频在线第一区 | 26uuu国产在线精品一区二区| 色久综合一二码| 成人蜜臀av电影|