
com.github.lontime.exthttp.configuration.ClientOption Maven / Gradle / Ivy
package com.github.lontime.exthttp.configuration;
import java.time.Duration;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.github.lontime.base.commonj.constants.Consts;
import com.github.lontime.exthttp.common.ClientCookieDecoderEnum;
import com.github.lontime.exthttp.common.ClientCookieEncoderEnum;
import com.github.lontime.exthttp.common.ConfigKey;
import io.netty.handler.codec.http.cookie.Cookie;
import lombok.Getter;
import lombok.Setter;
import reactor.netty.http.HttpProtocol;
import reactor.netty.transport.ProxyProvider;
/**
* ClientOption.
* @author lontime
* @since 1.0
*/
@Getter
@Setter
public class ClientOption {
public static final ClientOption DEFAULT = new ClientOption();
private String name = Consts.DEFAULT_OBJECT_NAME;
private String connectionName;
private List protocols = Arrays.asList(HttpProtocol.HTTP11);
private String host;
private Integer port;
private String baseUrl;
private Boolean keepAlive;
private Map headers;
private List cookies;
private ClientCookieEncoderEnum cookieEncoder;
private ClientCookieDecoderEnum cookieDecoder;
private Boolean compress;
private Boolean disableRetry;
private ResponseDecoder responseDecoder;
private Boolean wiretapEnabled;
private WiretapSpec wiretapSpec;
private Boolean secure;
private Boolean http11Secure;
private Boolean http2Secure;
private Boolean noSSL;
private Boolean noProxy;
private Boolean warmup = Boolean.FALSE;
private Boolean followRedirect;
private Redirect redirect;
private Map channelOptions;
private Map epollChannelOptions;
private Map nioChannelOptions;
private Map attrs;
private Duration responseTimeout = Duration.ofMinutes(2);
private Proxy proxy;
@Getter
@Setter
public static class ResponseDecoder {
private Boolean parseHttpAfterConnectRequest;
private Integer initialBufferSize;
private Integer maxChunkSize;
private Integer maxHeaderSize;
private Integer maxInitialLineLength;
private Boolean failOnMissingResponse;
private Boolean allowDuplicateContentLengths;
private Boolean validateHeaders;
private Integer h2cMaxContentLength;
}
@Getter
@Setter
public static class Redirect {
private Duration responseTimeout;
private Map headers;
private Boolean isFollowRedirect;
private Cookie cookie;
}
@Getter
@Setter
public static class Proxy {
private ProxyProvider.Proxy type;
private String host;
private Integer port;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy