public static void errorResponse(HttpConfig config, SelectionKey key, int status, String message) { HttpEncoder enc = new HttpEncoder(config); enc.response(key, HttpProtocol.HTTP_1_1, status, ""); enc.header(key, H_CONNECTION, "close"); enc.body(key, ByteBuffer.wrap(message.getBytes()), NetCtx.CLOSE); enc.finish(key); } }
@Override public HttpEncoder error(SelectionKey key, int status, String message, Object data, Throwable e) { reset(); response(key, HTTP_1_1, status, null); header(key, H_CONTENT_TYPE, "text/plain"); body(key, ByteBuffer.wrap(message.getBytes())); finish(key); return this; } }
@Override public void sendRequest(SelectionKey key, BufHandler output) { HttpEncoder encoder = new HttpEncoder(config, output); encoder.request(key, HttpProtocol.HTTP_1_1, method, uri, query); for (int i = 0; i < headersPos; i+=2) { encoder.header(key, headers[i], headers[i+1]); } encoder.finish(key); }
@Override public SvcListener finish(SelectionKey key) { System.out.println("SVR|Finish."); HttpEncoder encoder = new HttpEncoder(config); encoder.response(key, HTTP_1_1, 200, ""); encoder.header(key, "X-Some-Header", "someVal"); encoder.body(key, ByteBuffer.wrap("BAR".getBytes())); encoder.finish(key); return this; }
public void submit(HttpEncoder encoder, SelectionKey key, HttpMessage msg) { if (msg.isResponse()) { encoder.response(key, msg.getVersion(), msg.getStatus(), ""); } else { encoder.request(key, msg.getVersion(), msg.getMethod(), msg.getUri(), msg.getQuery()); } for (Map.Entry<String,List<String>> e : msg.getHeaders().entrySet()) { for (String val : e.getValue()) { encoder.header(key, e.getKey(), val); } } if (msg.getBodyParts().size() > 0) { Object[] parts = new Object[msg.getBodyParts().size()]; for (int i = 0; i < parts.length; i++) { parts[i] = NetkitUtil.toByteBuffer(msg.getBodyParts().get(i)); } encoder.body(key, parts); } encoder.finish(key); } }