mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
修复Http重定全局设置无效问题
This commit is contained in:
parent
44684aa036
commit
85a6df75b7
@ -12,6 +12,7 @@
|
||||
### 🐞Bug修复
|
||||
* 【poi 】 修复ExcelReader读取只有标题行报错问题(issue#I5U1JA@Gitee)
|
||||
* 【http 】 修复Http重定向时相对路径导致的问题(issue#I5TPSY@Gitee)
|
||||
* 【http 】 修复Http重定全局设置无效问题(pr#827@Github)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -832,7 +832,11 @@ public class HttpRequest extends HttpBase<HttpRequest> {
|
||||
* @return this
|
||||
*/
|
||||
public HttpRequest setFollowRedirects(boolean isFollowRedirects) {
|
||||
return setMaxRedirectCount(isFollowRedirects ? 2 : 0);
|
||||
if(isFollowRedirects && config.maxRedirectCount <= 0){
|
||||
// 默认两次跳转
|
||||
return setMaxRedirectCount(2);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,6 +9,9 @@ import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
@ -21,7 +24,7 @@ public class DownloadTest {
|
||||
@Test
|
||||
@Ignore
|
||||
public void downloadPicTest() {
|
||||
String url = "http://wx.qlogo.cn/mmopen/vKhlFcibVUtNBVDjcIowlg0X8aJfHXrTNCEFBukWVH9ta99pfEN88lU39MKspCUCOP3yrFBH3y2NbV7sYtIIlon8XxLwAEqv2/0";
|
||||
final String url = "http://wx.qlogo.cn/mmopen/vKhlFcibVUtNBVDjcIowlg0X8aJfHXrTNCEFBukWVH9ta99pfEN88lU39MKspCUCOP3yrFBH3y2NbV7sYtIIlon8XxLwAEqv2/0";
|
||||
HttpUtil.downloadFile(url, "e:/pic/t3.jpg");
|
||||
Console.log("ok");
|
||||
}
|
||||
@ -29,14 +32,14 @@ public class DownloadTest {
|
||||
@Test
|
||||
@Ignore
|
||||
public void downloadSizeTest() {
|
||||
String url = "https://res.t-io.org/im/upload/img/67/8948/1119501/88097554/74541310922/85/231910/366466 - 副本.jpg";
|
||||
final String url = "https://res.t-io.org/im/upload/img/67/8948/1119501/88097554/74541310922/85/231910/366466 - 副本.jpg";
|
||||
HttpRequest.get(url).setSSLProtocol("TLSv1.2").executeAsync().writeBody("e:/pic/366466.jpg");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void downloadTest1() {
|
||||
long size = HttpUtil.downloadFile("http://explorer.bbfriend.com/crossdomain.xml", "e:/temp/");
|
||||
final long size = HttpUtil.downloadFile("http://explorer.bbfriend.com/crossdomain.xml", "e:/temp/");
|
||||
System.out.println("Download size: " + size);
|
||||
}
|
||||
|
||||
@ -54,8 +57,8 @@ public class DownloadTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progress(long contentLength, long progressSize) {
|
||||
long speed = progressSize / (System.currentTimeMillis() - time) * 1000;
|
||||
public void progress(final long contentLength, final long progressSize) {
|
||||
final long speed = progressSize / (System.currentTimeMillis() - time) * 1000;
|
||||
Console.log("总大小:{}, 已下载:{}, 速度:{}/s", FileUtil.readableFileSize(contentLength), FileUtil.readableFileSize(progressSize), FileUtil.readableFileSize(speed));
|
||||
}
|
||||
|
||||
@ -69,7 +72,7 @@ public class DownloadTest {
|
||||
@Test
|
||||
@Ignore
|
||||
public void downloadFileFromUrlTest1() {
|
||||
File file = HttpUtil.downloadFileFromUrl("http://groovy-lang.org/changelogs/changelog-3.0.5.html", "d:/download/temp");
|
||||
final File file = HttpUtil.downloadFileFromUrl("http://groovy-lang.org/changelogs/changelog-3.0.5.html", "d:/download/temp");
|
||||
Assert.assertNotNull(file);
|
||||
Assert.assertTrue(file.isFile());
|
||||
Assert.assertTrue(file.length() > 0);
|
||||
@ -87,7 +90,7 @@ public class DownloadTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progress(long contentLength, long progressSize) {
|
||||
public void progress(final long contentLength, final long progressSize) {
|
||||
System.out.println("download size:" + progressSize);
|
||||
}
|
||||
|
||||
@ -102,7 +105,7 @@ public class DownloadTest {
|
||||
Assert.assertTrue(file.isFile());
|
||||
Assert.assertTrue(file.length() > 0);
|
||||
Assert.assertTrue(file.getName().length() > 0);
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
Assert.assertTrue(e instanceof IORuntimeException);
|
||||
} finally {
|
||||
FileUtil.del(file);
|
||||
@ -121,7 +124,7 @@ public class DownloadTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progress(long contentLength, long progressSize) {
|
||||
public void progress(final long contentLength, final long progressSize) {
|
||||
System.out.println("contentLength:" + contentLength + "download size:" + progressSize);
|
||||
}
|
||||
|
||||
@ -153,7 +156,7 @@ public class DownloadTest {
|
||||
Assert.assertTrue(file.isFile());
|
||||
Assert.assertTrue(file.length() > 0);
|
||||
Assert.assertTrue(file.getName().length() > 0);
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
Assert.assertTrue(e instanceof IORuntimeException);
|
||||
} finally {
|
||||
FileUtil.del(file);
|
||||
@ -188,4 +191,15 @@ public class DownloadTest {
|
||||
FileUtil.del(file1);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void downloadTeamViewerTest() throws IOException {
|
||||
// 此URL有3次重定向, 需要请求4次
|
||||
final String url = "https://download.teamviewer.com/download/TeamViewer_Setup_x64.exe";
|
||||
HttpGlobalConfig.setMaxRedirectCount(20);
|
||||
final Path temp = Files.createTempFile("tmp", ".exe");
|
||||
final File file = HttpUtil.downloadFileFromUrl(url, temp.toFile());
|
||||
Console.log(file.length());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user