@Override public boolean validate(long callInstance, HTTPResponseReader reader) { int code = reader.statusCode(); return code >= 200 && code < 400; } };
@Override public boolean responseHTTP(HTTPResponseReader reader) { if (reader.isConnectionClosed()) { return responder.closed(); } else { return responder.respondWith(200, !reader.isEndOfResponse(), (headWriter) -> { reader.structured().visit(HTTPHeader.class, (header,r,id)->{ //we are a proxy, our response has its own length, connection and status if (header != HTTPHeaderDefaults.CONTENT_LENGTH && header != HTTPHeaderDefaults.CONNECTION && header != HTTPHeaderDefaults.STATUS ) { headWriter.write(header, reader.getSpec(), r); } }); }, reader.contentType(), (payloadWriter) -> { payloadWriter.write(reader.structured().readPayload()); }); } }
if (reader.available()>=2) { reader.setStatusCode(reader.readShort()); reader.setConnectionId(ccId1); reader.setClientSessionId(clientSessionId); reader.setFlags(flags); continuation.setFlags(flags2); continuation.setConnectionId(fieldConnectionId); continuation.setClientSessionId(fieldClientSessionId); hostReader.setFlags(ServerCoordinator.END_RESPONSE_MASK | ServerCoordinator.CLOSE_CONNECTION_MASK); hostReader.setConnectionId(connectionId); hostReader.setClientSessionId(sessionId);
@Override public boolean responseHTTP(HTTPResponseReader reader) { Appendables.appendValue(console, " status:", reader.statusCode(),"\n"); console.append(" type:").append(reader.contentType().toString()).append("\n"); Payloadable payload = new Payloadable() { @Override public void read(ChannelReader reader) { if (reader.available()<1) { //error return; } int age = reader.structured().readInt(Fields.AGE); String name = reader.structured().readText(Fields.NAME); Appendables.appendValue(console.append(name).append(" "),age).append("\n"); } }; boolean hadAbody = reader.openPayloadData(payload ); return true; }
/** * * @return HTTPContentTypeDefaults.UNKNOWN or htc.type */ public HTTPContentType contentType() { if (structured().identityVisit(HTTPHeaderDefaults.CONTENT_TYPE, htc)) { return htc.type(); } else { return HTTPContentTypeDefaults.UNKNOWN; } }