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(); } }