All Downloads are FREE. Search and download functionalities are using the official Maven repository.

http.0.2.source-code.Example Maven / Gradle / Ivy

import com.wizzardo.epoll.EpollCore;
import com.wizzardo.epoll.readable.ReadableByteBuffer;
import com.wizzardo.http.HttpServer;
import com.wizzardo.http.request.Header;
import com.wizzardo.http.response.Response;
import com.wizzardo.tools.json.JsonTools;

import java.io.IOException;

/**
 * Created by mikhail.bobrutskov on 21/09/16.
 */
public class Example {
    public static final byte[] HELLO_WORLD = "Hello, World!".getBytes();
    private static ReadableByteBuffer staticResponse = new Response()
            .appendHeader(Header.KEY_CONNECTION, Header.VALUE_KEEP_ALIVE)
            .appendHeader(Header.KEY_CONTENT_TYPE, Header.VALUE_HTML_UTF8)
            .setBody("Hello, World!".getBytes())
            .buildStaticResponse();


    public static class Message {
        public String message;

        public Message(String message) {
            this.message = message;
        }
    }

    public static void main(String[] args) throws IOException, InterruptedException {
        System.out.println("epoll native is supported: " + EpollCore.SUPPORTED);
//        Unchecked.run(() -> {
//            Field field = EpollCore.class.getDeclaredField("SUPPORTED");
//            field.setAccessible(true);
//            field.setBoolean(null, false);
//        });
//        System.out.println("epoll native is supported: " + EpollCore.SUPPORTED);

        HttpServer application = new HttpServer(8081);
        application.getUrlMapping()
                .append("/plaintext", (request, response) -> response.setBody(HELLO_WORLD)
                        .appendHeader(Header.KV_CONTENT_TYPE_TEXT_PLAIN))
                .append("/json", (request, response) -> response
                        .setBody(JsonTools.serializeToBytes(new Message("Hello, World!")))
                        .appendHeader(Header.KV_CONTENT_TYPE_APPLICATION_JSON))
                .append("/plainstat", (request, response) -> response.setStaticResponse(staticResponse.copy()))
        ;
//        application.setIoThreadsCount(16);
//        application.setWorkersCount(8);
        application.start();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy