只用标准库,从 Java 中查询 Google,使用 serp.cheap——或者引入官方 Java SDK(含 Spring Boot 集成)。无论哪种方式,它都只是一个普通的 HTTP+JSON 端点。
先用 curl 快速验证一下:
curl -X POST https://api.serp.cheap/v1/search \
-H "X-API-Key: $SERP_CHEAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"best electric cars 2026","gl":"us"}'
完整示例
一个文件,在 Java 17+ 上即可运行,请求用 java.net.http,JSON 用 Jackson(com.fasterxml.jackson.core:jackson-databind)。请先设置 SERP_CHEAP_API_KEY。
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.List;
public class SerpSearch {
static final ObjectMapper M = new ObjectMapper();
@JsonIgnoreProperties(ignoreUnknown = true)
record Organic(int position, String title, String link, String snippet) {}
@JsonIgnoreProperties(ignoreUnknown = true)
record SearchResponse(List<Organic> organic) {}
public static void main(String[] args) throws Exception {
String key = System.getenv("SERP_CHEAP_API_KEY");
String body = M.writeValueAsString(new java.util.HashMap<>() {{
put("q", "best electric cars 2026");
put("gl", "us");
}});
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.serp.cheap/v1/search"))
.header("X-API-Key", key)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
SearchResponse data = M.readValue(res.body(), SearchResponse.class);
for (Organic r : data.organic()) {
System.out.printf("%2d. %s%n %s%n", r.position(), r.title(), r.link());
}
}
}
records 能干净地映射 JSON,而 @JsonIgnoreProperties(ignoreUnknown = true) 意味着响应中新增的字段永远不会破坏你的构建。
Spring Boot
在 Spring 应用中,用 RestClient(Spring 6.1+)把同样的调用包进一个 @Service:
@Service
public class SerpClient {
private final RestClient http = RestClient.builder()
.baseUrl("https://api.serp.cheap")
.defaultHeader("X-API-Key", System.getenv("SERP_CHEAP_API_KEY"))
.build();
public SearchResponse search(String q, String gl) {
return http.post().uri("/v1/search")
.body(java.util.Map.of("q", q, "gl", gl))
.retrieve()
.body(SearchResponse.class);
}
}
官方 Java SDK 以 Spring Boot starter 的形式提供了这套接线 —— 还附带重试、分页和类型化参数 —— 你只需注入 SerpClient 即可开始使用。
值得了解的参数
gl—— 结果所属国家(us、de、br……)。参见按国家做本地 SEO。hl—— 界面语言。page—— 从 1 开始计数;每一页都是一次独立请求。参见分页。tbs—— 时间过滤器(qdr:d= 过去一天)。参见完整参数参考。
下一步
试用 serp.cheap
复制上面的文件,填上你的密钥,你就能在 Java 中获取实时 Google 结果了。注册即送 100 次免费搜索 —— 无需信用卡;此后按量付费低至 $0.75/千次,积分 12 个月内有效。
- 获取你的免费 API 密钥 →
- 更想用信用卡付费?serp.cheap 也上架了 RapidAPI(约 $0.90/千次)和 Apify(约 $1.50/千次)。