diff --git a/src/main/java/com/imyeyu/network/ProgressiveRequest.java b/src/main/java/com/imyeyu/network/ProgressiveRequest.java index 0417104..244d611 100644 --- a/src/main/java/com/imyeyu/network/ProgressiveRequest.java +++ b/src/main/java/com/imyeyu/network/ProgressiveRequest.java @@ -42,10 +42,12 @@ public class ProgressiveRequest extends FileRequest { return new ProgressiveRequest(Request.post(url), callback); } + @Override public void toFile(Path outputPath) throws IOException, NoPermissionException { processResponse(request.execute(), IO.getOutputStream(outputPath.toFile())); } + @Override public void toFile(File file) throws IOException, NoPermissionException { processResponse(request.execute(), IO.getOutputStream(file)); } @@ -55,6 +57,7 @@ public class ProgressiveRequest extends FileRequest { return new String(asBytes()); } + @Override public byte[] asBytes() throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); processResponse(request.execute(), os); diff --git a/src/test/java/com/imyeyu/network/test/ProgressRequestTest.java b/src/test/java/com/imyeyu/network/test/ProgressRequestTest.java new file mode 100644 index 0000000..cfdda2b --- /dev/null +++ b/src/test/java/com/imyeyu/network/test/ProgressRequestTest.java @@ -0,0 +1,41 @@ +package com.imyeyu.network.test; + +import com.imyeyu.io.IOSize; +import com.imyeyu.network.FileRequest; +import com.imyeyu.network.ProgressiveRequest; +import org.apache.hc.client5.http.fluent.Request; +import org.apache.hc.core5.http.Header; +import org.apache.hc.core5.http.HttpResponse; +import org.junit.Test; + +/** + * @author 夜雨 + * @since 2025-07-14 15:30 + */ +public class ProgressRequestTest { + + private static final String URL1 = "http://localhost:8091/system/file/download/video/test92MB.mp4?key=GS60MF78GbPhImiCN4fsi3T2E5tDfP1scxufVhbuccaxldba0okpQPgKq4ntyr0J"; + private static final String URL2 = "https://git.imyeyu.com/test92MB.mp4"; + private static final String URL3 = "http://localhost:8092/test/download"; + + @Test + public void testGet() throws Exception { + ProgressiveRequest.get(URL1, (total, read, now) -> { + System.out.println(1D * read / total); + return true; + }).asBytes(); + } + + @Test + public void testLength() throws Exception { + long length = FileRequest.wrap(Request.head(URL2)).length(); + System.out.println(IOSize.format(length)); + } + + @Test + public void testLength2() throws Exception { + HttpResponse response = Request.head(URL3).execute().returnResponse(); + final Header contentLengthHeader = response.getHeader("Content-Length"); + System.out.println(contentLengthHeader.getValue()); + } +} \ No newline at end of file