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

org.smartboot.http.client.Header Maven / Gradle / Ivy

There is a newer version: 1.4.3
Show newest version
package org.smartboot.http.client;

import org.smartboot.http.common.enums.HeaderNameEnum;
import org.smartboot.http.common.enums.HeaderValueEnum;

/**
 * @author 三刀([email protected])
 * @version V1.0 , 2023/2/13
 */
public interface Header {
    /**
     * 添加 header,支持同名追加
     *
     * @param headerName  header名
     * @param headerValue header值
     * @return 当前Header对象
     */
    Header add(String headerName, String headerValue);

    /**
     * 添加 header,支持同名追加
     *
     * @param headerName  header名
     * @param headerValue header值
     * @return 当前Header对象
     */
    default Header add(String headerName, int headerValue) {
        add(headerName, String.valueOf(headerValue));
        return this;
    }

    /**
     * 设置header,覆盖同名header
     *
     * @param headerName  header名
     * @param headerValue header值
     * @return 当前Header对象
     */
    Header set(String headerName, String headerValue);

    /**
     * 设置header,覆盖同名header
     *
     * @param headerName  header名
     * @param headerValue header值
     * @return 当前Header对象
     */
    default Header set(String headerName, int headerValue) {
        set(headerName, String.valueOf(headerValue));
        return this;
    }

    default Header setContentType(String contentType) {
        return set(HeaderNameEnum.CONTENT_TYPE.getName(), contentType);
    }

    default Header setContentLength(long contentLength) {
        return set(HeaderNameEnum.CONTENT_LENGTH.getName(), String.valueOf(contentLength));
    }

    default Header keepalive(boolean flag) {
        return keepalive(flag ? HeaderValueEnum.KEEPALIVE.getName() : HeaderValueEnum.CLOSE.getName());
    }

    default Header keepalive(String headerValue) {
        return set(HeaderNameEnum.CONNECTION.getName(), headerValue);
    }

    /**
     * 结束header设置
     *
     * @return header归属的HTTP请求主体
     */
    T done();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy