List of usage examples for org.apache.http.impl.nio.client HttpExchange getRequest
public HttpRequest getRequest()
From source file:org.apache.http.impl.nio.client.NHttpClientProtocolHandler.java
public void responseReceived(final NHttpClientConnection conn) { HttpContext context = conn.getContext(); HttpExchange httpexchange = getHttpExchange(context); HttpAsyncExchangeHandler<?> handler = getHandler(context); if (this.log.isDebugEnabled()) { this.log.debug("Response received " + formatState(conn, httpexchange)); }//from ww w. ja v a2 s . c o m try { HttpResponse response = conn.getHttpResponse(); HttpRequest request = httpexchange.getRequest(); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode < HttpStatus.SC_OK) { // 1xx intermediate response if (statusCode == HttpStatus.SC_CONTINUE && httpexchange.getRequestState() == MessageState.ACK) { continueRequest(conn, httpexchange); httpexchange.setRequestState(MessageState.BODY_STREAM); } return; } else { httpexchange.setResponse(response); if (httpexchange.getRequestState() == MessageState.ACK) { cancelRequest(conn, httpexchange); httpexchange.setRequestState(MessageState.COMPLETED); } else if (httpexchange.getRequestState() == MessageState.BODY_STREAM) { // Early response cancelRequest(conn, httpexchange); httpexchange.invalidate(); conn.suspendOutput(); } } handler.responseReceived(response); if (!canResponseHaveBody(request, response)) { processResponse(conn, httpexchange, handler); } } catch (IOException ex) { if (this.log.isDebugEnabled()) { this.log.debug("I/O error: " + ex.getMessage(), ex); } shutdownConnection(conn); handler.failed(ex); } catch (HttpException ex) { if (this.log.isDebugEnabled()) { this.log.debug("HTTP protocol exception: " + ex.getMessage(), ex); } closeConnection(conn); handler.failed(ex); } }
From source file:org.apache.http.impl.nio.client.NHttpClientProtocolHandler.java
private void processResponse(final NHttpClientConnection conn, final HttpExchange httpexchange, final HttpAsyncExchangeHandler<?> handler) throws IOException { if (!httpexchange.isValid()) { conn.close();/*w w w . ja v a 2s. c om*/ } HttpRequest request = httpexchange.getRequest(); HttpResponse response = httpexchange.getResponse(); String method = request.getRequestLine().getMethod(); int status = response.getStatusLine().getStatusCode(); if (method.equalsIgnoreCase("CONNECT") && status == HttpStatus.SC_OK) { this.log.debug("CONNECT method succeeded"); conn.resetInput(); } else { if (!handler.keepAlive(response)) { conn.close(); } } if (this.log.isDebugEnabled()) { this.log.debug("Response processed " + formatState(conn, httpexchange)); } handler.responseCompleted(); httpexchange.reset(); }
From source file:org.apache.http.impl.nio.client.NHttpClientProtocolHandler.java
private String formatState(final NHttpConnection conn, final HttpExchange httpexchange) { StringBuilder buf = new StringBuilder(); buf.append("["); if (conn.isOpen() && (conn instanceof HttpInetConnection)) { HttpInetConnection inetconn = (HttpInetConnection) conn; buf.append(inetconn.getRemoteAddress()); buf.append(":"); buf.append(inetconn.getRemotePort()); }// w w w . ja v a2s. c o m buf.append("("); buf.append(conn.isOpen() ? "open" : "closed"); buf.append("),request="); buf.append(httpexchange.getRequestState()); if (httpexchange.getRequest() != null) { buf.append("("); buf.append(httpexchange.getRequest().getRequestLine()); buf.append(")"); } buf.append(",response="); buf.append(httpexchange.getResponseState()); if (httpexchange.getResponse() != null) { buf.append("("); buf.append(httpexchange.getResponse().getStatusLine()); buf.append(")"); } buf.append(",valid="); buf.append(httpexchange.isValid()); buf.append("]"); return buf.toString(); }