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

com.github.lontime.exthttp.container.HttpInterceptorInterface Maven / Gradle / Ivy

package com.github.lontime.exthttp.container;

import java.net.SocketAddress;
import java.net.URI;

import com.github.lontime.base.commonj.components.ComponentInterface;
import com.github.lontime.base.commonj.constants.Consts;
import com.github.lontime.extcommons.lang3.Prioritized;
import io.netty.channel.Channel;
import reactor.netty.Connection;
import reactor.netty.ConnectionObserver;
import reactor.netty.http.client.HttpClientConfig;
import reactor.netty.http.client.HttpClientRequest;
import reactor.netty.http.client.HttpClientResponse;

/**
 * HttpInterceptorInterface.
 * @author lontime
 * @since 1.0
 */
public interface HttpInterceptorInterface extends ComponentInterface, Prioritized {

    /**
     * getClazz.
     * @return Class
     */
    @Override
    default Class getClazz() {
        return HttpInterceptorInterface.class;
    }

    @Override
    default String getName() {
        return Consts.DEFAULT_OBJECT_NAME;
    }

    /**
     * onRequest.
     * @param request request
     * @param connection connection
     */
    default void onRequest(HttpClientRequest request, Connection connection) {

    }

    /**
     * onRequest.
     * @param request request
     * @param throwable throwable
     */
    default void onRequestError(HttpClientRequest request, Throwable throwable) {

    }

    /**
     * onRequest.
     * @param request request
     * @param connection connection
     */
    default void afterRequest(HttpClientRequest request, Connection connection) {

    }

    /**
     * onResponse.
     * @param response request
     * @param connection connection
     */
    default void onResponse(HttpClientResponse response, Connection connection) {

    }

    /**
     * onRequest.
     * @param response response
     * @param throwable throwable
     */
    default void onResponseError(HttpClientResponse response, Throwable throwable) {

    }

    /**
     * onResponse.
     * @param response request
     * @param connection connection
     */
    default void afterResponseSuccess(HttpClientResponse response, Connection connection) {
        URI.create(response.uri()).getQuery();
        response.uri();
    }

    /**
     * onResolve.
     * @param connection connection
     */
    default void onResolve(Connection connection) {

    }

    /**
     * OnResolveError.
     * @param connection connection
     * @param throwable throwable
     */
    default void OnResolveError(Connection connection, Throwable throwable) {

    }

    /**
     * onResolve.
     * @param connection connection
     * @param address address
     */
    default void afterResolve(Connection connection, SocketAddress address) {

    }

    /**
     * channelInit.
     * @param observer observer
     * @param channel channel
     * @param remoteAddress remoteAddress
     */
    default void channelInit(ConnectionObserver observer, Channel channel, SocketAddress remoteAddress) {
    }

    /**
     * connect.
     * @param config config
     */
    default void connect(HttpClientConfig config) {

    }

    /**
     * connected.
     * @param connection config
     */
    default void connected(Connection connection) {

    }

    /**
     * connected.
     * @param connection config
     */
    default void disconnected(Connection connection) {

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy