org.smartboot.http.client.Header Maven / Gradle / Ivy
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();
}