Files
timi-network/src/main/java/com/imyeyu/network/CommonRequest.java
Timi 436ac6f205
All checks were successful
CI/CD / build-deploy (pull_request) Successful in 21s
v0.0.4
2026-03-09 11:14:12 +08:00

72 lines
1.6 KiB
Java

package com.imyeyu.network;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.util.Timeout;
import java.io.IOException;
import java.io.InputStream;
/**
* @author 夜雨
* @since 2025-07-15 14:27
*/
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class CommonRequest {
protected final Request request;
public static CommonRequest wrap(Request request) {
return new CommonRequest(request);
}
public static CommonRequest get(String url) {
return new CommonRequest(Request.get(url));
}
public static CommonRequest post(String url) {
return new CommonRequest(Request.post(url));
}
public CommonRequest timeout(long ms) {
request.connectTimeout(Timeout.ofMilliseconds(ms)).responseTimeout(Timeout.ofMilliseconds(ms));
return this;
}
public CommonRequest header(String key, String value) {
request.addHeader(key, value);
return this;
}
public CommonRequest token(String token) {
request.addHeader("Token", token);
return this;
}
public CommonRequest language(String langHeader) {
request.addHeader("Accept-Language", langHeader);
return this;
}
public String asString() throws IOException {
return request.execute().returnContent().asString();
}
public Number asNumber() throws IOException {
return Double.parseDouble(asString());
}
public byte[] asBytes() throws IOException {
return request.execute().returnContent().asBytes();
}
public InputStream asStream() throws IOException {
return request.execute().returnContent().asStream();
}
public void execute() throws IOException {
request.execute();
}
}