From bd3af6e81ac59867e15e35ef08fead44f6de7b2a Mon Sep 17 00:00:00 2001 From: duonglaiquang Date: Mon, 16 Mar 2026 19:17:24 +0900 Subject: [PATCH] DefaultPageCreator: force content sniffing for */* content type --- .../java/org/htmlunit/DefaultPageCreator.java | 2 +- .../org/htmlunit/DefaultPageCreatorTest.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/htmlunit/DefaultPageCreator.java b/src/main/java/org/htmlunit/DefaultPageCreator.java index 0b466d7ad3..0f9a51e89f 100644 --- a/src/main/java/org/htmlunit/DefaultPageCreator.java +++ b/src/main/java/org/htmlunit/DefaultPageCreator.java @@ -155,7 +155,7 @@ public static PageType determinePageType(final String contentType) { */ public static PageType determinePageType(final WebResponse webResponse) throws IOException { final String contentType = webResponse.getContentType(); - if (!StringUtils.isEmptyOrNull(contentType)) { + if (!StringUtils.isEmptyOrNull(contentType) && !"*/*".equals(contentType)) { return determinePageType(contentType); } diff --git a/src/test/java/org/htmlunit/DefaultPageCreatorTest.java b/src/test/java/org/htmlunit/DefaultPageCreatorTest.java index d497f038b2..d14da88483 100644 --- a/src/test/java/org/htmlunit/DefaultPageCreatorTest.java +++ b/src/test/java/org/htmlunit/DefaultPageCreatorTest.java @@ -38,6 +38,7 @@ * @author Marc Guillemot * @author Ahmed Ashour * @author Ronald Brill + * @author Lai Quang Duong */ public class DefaultPageCreatorTest extends WebServerTestCase { @@ -377,6 +378,32 @@ protected void doGet(final HttpServletRequest request, final HttpServletResponse } } + /** + * @throws Exception if the test fails + */ + @Test + public void wildcardContentType() throws Exception { + final Map> servlets = new HashMap<>(); + servlets.put("/test", WildcardContentTypeServlet.class); + startWebServer("./", servlets); + + final WebClient client = getWebClient(); + assertTrue(client.getPage(URL_FIRST + "test") instanceof HtmlPage); + } + + /** + * Servlet for {@link #wildcardContentType()}. + */ + public static class WildcardContentTypeServlet extends HttpServlet { + /** {@inheritDoc} */ + @Override + protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException { + response.setContentType("*/*"); + final Writer writer = response.getWriter(); + writer.write("Hello World"); + } + } + /** * @throws Exception if the test fails */