mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
feat: 新增followRedirectsCookie配置,支持开启自动重定向携带cookie
This commit is contained in:
@@ -9,6 +9,8 @@ import cn.hutool.core.util.CharsetUtil;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.net.CookieManager;
|
||||
import java.net.HttpCookie;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -169,6 +171,33 @@ public class HttpRequestTest {
|
||||
Console.log(execute.getStatus(), execute.header(Header.LOCATION));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void followRedirectsCookieTrueTest() {
|
||||
final String url = "http://localhost:8888/redirect1";
|
||||
CookieManager cookieManager = new CookieManager();
|
||||
HttpRequest.setCookieManager(cookieManager);
|
||||
HttpResponse execute = HttpRequest.get(url)
|
||||
.setMaxRedirectCount(20)
|
||||
.setFollowRedirectsCookie(true)
|
||||
.execute();
|
||||
List<HttpCookie> cookies = cookieManager.getCookieStore().getCookies();
|
||||
Console.log(execute.getStatus(), cookies);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void followRedirectsCookieFalseTest() {
|
||||
final String url = "http://localhost:8888/redirect1";
|
||||
CookieManager cookieManager = new CookieManager();
|
||||
HttpRequest.setCookieManager(cookieManager);
|
||||
HttpResponse execute = HttpRequest.get(url)
|
||||
.setMaxRedirectCount(20)
|
||||
.execute();
|
||||
List<HttpCookie> cookies = cookieManager.getCookieStore().getCookies();
|
||||
Console.log(execute.getStatus(), cookies);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void addInterceptorTest() {
|
||||
|
@@ -0,0 +1,29 @@
|
||||
package cn.hutool.http.server;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.http.Header;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
|
||||
public class RedirectServerTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
HttpUtil.createServer(8888).addAction("/redirect1", (request, response) -> {
|
||||
response.addHeader(Header.LOCATION.getValue(),"http://localhost:8888/redirect2");
|
||||
response.addHeader(Header.SET_COOKIE.getValue(),"redirect1=1; path=/; HttpOnly");
|
||||
response.send(301);
|
||||
}).addAction("/redirect2", (request, response) -> {
|
||||
response.addHeader(Header.LOCATION.getValue(),"http://localhost:8888/redirect3");
|
||||
response.addHeader(Header.SET_COOKIE.getValue(), "redirect2=2; path=/; HttpOnly");
|
||||
response.send(301);
|
||||
}).addAction("/redirect3", (request, response) -> {
|
||||
response.addHeader(Header.LOCATION.getValue(),"http://localhost:8888/redirect4");
|
||||
response.addHeader(Header.SET_COOKIE.getValue(),"redirect3=3; path=/; HttpOnly");
|
||||
response.send(301);
|
||||
}).addAction("/redirect4", (request, response) -> {
|
||||
String cookie = request.getHeader(Header.COOKIE);
|
||||
Console.log(cookie);
|
||||
response.sendOk();
|
||||
}).start();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user