@Override protected void encodeInitialLine(ChannelBuffer buf, HttpMessage message) throws Exception { HttpResponse response = (HttpResponse) message; buf.writeBytes(response.getProtocolVersion().toString().getBytes("ASCII")); buf.writeByte((byte) ' '); buf.writeBytes(String.valueOf(response.getStatus().getCode()).getBytes("ASCII")); buf.writeByte((byte) ' '); buf.writeBytes(String.valueOf(response.getStatus().getReasonPhrase()).getBytes("ASCII")); buf.writeByte((byte) '\r'); buf.writeByte((byte) '\n'); } }
@Override protected void encodeInitialLine(ChannelBuffer buf, HttpMessage message) throws Exception { HttpResponse response = (HttpResponse) message; encodeAscii(response.getProtocolVersion().toString(), buf); buf.writeByte(SP); encodeAscii(String.valueOf(response.getStatus().getCode()), buf); buf.writeByte(SP); encodeAscii(String.valueOf(response.getStatus().getReasonPhrase()), buf); buf.writeByte(CR); buf.writeByte(LF); } }
private SpdySynReplyFrame createSynReplyFrame(HttpResponse httpResponse) throws Exception { boolean chunked = httpResponse.isChunked(); // Get the Stream-ID from the headers int streamId = SpdyHttpHeaders.getStreamId(httpResponse); SpdyHttpHeaders.removeStreamId(httpResponse); // The Connection, Keep-Alive, Proxy-Connection, and Transfer-Encoding // headers are not valid and MUST not be sent. httpResponse.headers().remove(HttpHeaders.Names.CONNECTION); httpResponse.headers().remove("Keep-Alive"); httpResponse.headers().remove("Proxy-Connection"); httpResponse.headers().remove(HttpHeaders.Names.TRANSFER_ENCODING); SpdySynReplyFrame spdySynReplyFrame = new DefaultSpdySynReplyFrame(streamId); spdySynReplyFrame.setLast(!chunked && !httpResponse.getContent().readable()); // Unfold the first line of the response into name/value pairs SpdyHeaders.setStatus(spdyVersion, spdySynReplyFrame, httpResponse.getStatus()); SpdyHeaders.setVersion(spdyVersion, spdySynReplyFrame, httpResponse.getProtocolVersion()); // Transfer the remaining HTTP headers for (Map.Entry<String, String> entry: httpResponse.headers()) { spdySynReplyFrame.headers().add(entry.getKey(), entry.getValue()); } return spdySynReplyFrame; }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
@Override public String getProtocolText() { return response.getProtocolVersion().getText(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
@Override public String getProtocolText() { return response.getProtocolVersion().getText(); }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
@Override public String getProtocolText() { return response.getProtocolVersion().getText(); }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMinorVersion() { return response.getProtocolVersion().getMinorVersion(); }
@Override public String getProtocolText() { return response.getProtocolVersion().getText(); }
@Override public String getProtocolName() { return response.getProtocolVersion().getProtocolName(); }
@Override public int getProtocolMajorVersion() { return response.getProtocolVersion().getMajorVersion(); }
private void logResponse(HttpResponse response) { finerLog("STATUS: " + response.getStatus()); finerLog("VERSION: " + response.getProtocolVersion()); if (!response.getHeaderNames().isEmpty()) { for (String name : response.getHeaderNames()) { for (String value : response.getHeaders(name)) { finerLog("HEADER: " + name + " = " + value); } } finerLog(System.getProperty("line.separator")); } if (response.getStatus().getCode() == 200 && response.isChunked()) { readingChunks = true; finerLog("CHUNKED CONTENT {"); } else if(response.getStatus().getCode() == 200) { ChannelBuffer content = response.getContent(); if (content.readable()) { finerLog("CONTENT {"); finerLog(content.toString(CharsetUtil.UTF_8)); finerLog("} END OF CONTENT"); } } else { throw new ConnectionException("Could not retrieve configuration chunk. " + "Response Code is: " + response.getStatus()); } }