From 00e784005c7cd1b3ccc06c6c503f2362ac81694d Mon Sep 17 00:00:00 2001 From: Terry Tan Date: Wed, 23 Sep 2026 09:51:34 +0800 Subject: [PATCH] fix: request html() from /search instead of the nonexistent /client endpoint --- src/main/java/serpapi/SerpApi.java | 2 +- src/test/java/serpapi/HtmlApiTest.java | 51 ++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/test/java/serpapi/HtmlApiTest.java diff --git a/src/main/java/serpapi/SerpApi.java b/src/main/java/serpapi/SerpApi.java index af7df9c..5c64571 100644 --- a/src/main/java/serpapi/SerpApi.java +++ b/src/main/java/serpapi/SerpApi.java @@ -64,7 +64,7 @@ public SerpApi() { * @throws SerpApiException wraps backend error message */ public String html(Map parameter) throws SerpApiException { - return get("/client", "html", parameter); + return get("/search", "html", parameter); } /*** diff --git a/src/test/java/serpapi/HtmlApiTest.java b/src/test/java/serpapi/HtmlApiTest.java new file mode 100644 index 0000000..a5f34cf --- /dev/null +++ b/src/test/java/serpapi/HtmlApiTest.java @@ -0,0 +1,51 @@ +package serpapi; + +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.*; + +/** + * Test SerpApi.html() method. + * + * Offline: the HTTP client is stubbed, so no network call and no SERPAPI_KEY + * are needed. What matters here is the request this client builds, which can + * be asserted without a live backend. + */ +public class HtmlApiTest { + + /** + * Stubbed HTTP client that records the query it was asked to send. + */ + private static class RecordingHttp extends SerpApiHttp { + Map recorded; + + RecordingHttp() { + super("/search"); + } + + @Override + public String get(Map parameter) { + this.recorded = parameter; + return "coffee"; + } + } + + @Test + public void htmlRequestsHtmlOutputFromSearchEndpoint() throws SerpApiException { + SerpApi serpapi = new SerpApi(new HashMap<>()); + RecordingHttp http = new RecordingHttp(); + serpapi.client = http; + + Map parameter = new HashMap<>(); + parameter.put("q", "coffee"); + String content = serpapi.html(parameter); + + assertEquals("html", http.recorded.get("output")); + assertEquals("coffee", http.recorded.get("q")); + assertEquals("/search", http.path); + assertTrue(content.startsWith("")); + } +}