@Override public ProtocolVersion getVersion() { return response.getVersion(); }
@Test public void testResponseToA1_0RequestShouldUse1_1() throws Exception { request = new BasicClassicHttpRequest("GET", "/foo"); request.setVersion(new ProtocolVersion("HTTP", 1, 0)); EasyMock.expect( mockExecChain.proceed( EasyMock.isA(ClassicHttpRequest.class), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); final ClassicHttpResponse result = execute(request); verifyMocks(); Assert.assertEquals(HttpVersion.HTTP_1_1, result.getVersion()); }
@Test public void testUnsuitableUnvalidatableCacheEntryCausesBackendRequest() throws Exception { mockImplMethods(CALL_BACKEND); requestPolicyAllowsCaching(true); requestIsFatallyNonCompliant(null); getCacheEntryReturns(mockCacheEntry); cacheEntrySuitable(false); cacheEntryValidatable(false); expect(mockConditionalRequestBuilder.buildConditionalRequest(request, mockCacheEntry)) .andReturn(request); backendExpectsRequestAndReturn(request, mockBackendResponse); expect(mockBackendResponse.getVersion()).andReturn(HttpVersion.HTTP_1_1).anyTimes(); expect(mockBackendResponse.getCode()).andReturn(200); replayMocks(); final HttpResponse result = impl.execute(request, scope, mockExecChain); verifyMocks(); Assert.assertSame(mockBackendResponse, result); Assert.assertEquals(0, impl.getCacheMisses()); Assert.assertEquals(1, impl.getCacheHits()); Assert.assertEquals(1, impl.getCacheUpdates()); }
@Test public void testLowerOriginResponsesUpgradedToOurVersion1_1() throws Exception { originResponse = new BasicClassicHttpResponse(HttpStatus.SC_OK, "OK"); originResponse.setVersion(new ProtocolVersion("HTTP", 1, 2)); originResponse.setHeader("Date", DateUtils.formatDate(new Date())); originResponse.setHeader("Server", "MockOrigin/1.0"); originResponse.setEntity(body); // not testing this internal behavior in this test, just want // to check the protocol version that comes out the other end EasyMock.expect( mockExecChain.proceed( EasyMock.isA(ClassicHttpRequest.class), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); final ClassicHttpResponse result = execute(request); verifyMocks(); Assert.assertEquals(HttpVersion.HTTP_1_1, result.getVersion()); }
if (HttpVersion.HTTP_1_0.greaterEquals(result.getVersion())) { Assert.assertEquals(dateHdr, result.getFirstHeader("Date").getValue()); boolean warningFound = false;
@Override protected void writeHeadLine( final ClassicHttpResponse message, final CharArrayBuffer lineBuf) throws IOException { final ProtocolVersion transportVersion = message.getVersion(); getLineFormatter().formatStatusLine(lineBuf, new StatusLine( transportVersion != null ? transportVersion : HttpVersion.HTTP_1_1, message.getCode(), message.getReasonPhrase())); }
@Override protected void writeHeadLine( final ClassicHttpResponse message, final CharArrayBuffer lineBuf) throws IOException { final ProtocolVersion transportVersion = message.getVersion(); getLineFormatter().formatStatusLine(lineBuf, new StatusLine( transportVersion != null ? transportVersion : HttpVersion.HTTP_1_1, message.getCode(), message.getReasonPhrase())); }
Args.notNull(processor, "HTTP processor"); Args.notNull(context, "HTTP context"); final ProtocolVersion transportVersion = response.getVersion(); if (transportVersion != null) { context.setProtocolVersion(transportVersion);
Args.notNull(processor, "HTTP processor"); Args.notNull(context, "HTTP context"); final ProtocolVersion transportVersion = response.getVersion(); if (transportVersion != null) { context.setProtocolVersion(transportVersion);
@Override public ClassicHttpResponse receiveResponseHeader() throws HttpException, IOException { final SocketHolder socketHolder = ensureOpen(); final ClassicHttpResponse response = this.responseParser.parse(this.inBuffer, socketHolder.getInputStream()); final ProtocolVersion transportVersion = response.getVersion(); if (transportVersion != null && transportVersion.greaterEquals(HttpVersion.HTTP_2)) { throw new UnsupportedHttpVersionException(transportVersion); } this.version = transportVersion; onResponseReceived(response); final int status = response.getCode(); if (status < HttpStatus.SC_INFORMATIONAL) { throw new ProtocolException("Invalid response: " + status); } if (response.getCode() >= HttpStatus.SC_SUCCESS) { incrementResponseCount(); } return response; }
@Override public ClassicHttpResponse receiveResponseHeader() throws HttpException, IOException { final SocketHolder socketHolder = ensureOpen(); final ClassicHttpResponse response = this.responseParser.parse(this.inBuffer, socketHolder.getInputStream()); final ProtocolVersion transportVersion = response.getVersion(); if (transportVersion != null && transportVersion.greaterEquals(HttpVersion.HTTP_2)) { throw new UnsupportedHttpVersionException(transportVersion); } this.version = transportVersion; onResponseReceived(response); final int status = response.getCode(); if (status < HttpStatus.SC_INFORMATIONAL) { throw new ProtocolException("Invalid response: " + status); } if (response.getCode() >= HttpStatus.SC_SUCCESS) { incrementResponseCount(); } return response; }