← 返回博客

Java 中的 Google Search API:完整教程 (2026)

在 Java 中调用 Google Search API —— 可直接运行的 java.net.http 示例、JSON records、curl 测试。100 次免费搜索,按量付费低至 $0.75/千次。

1 分钟阅读

只用标准库,从 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 个月内有效。

Frequently asked questions

如何在 Java 中调用 Google Search API?+

使用内置的 java.net.http.HttpClient 向 SERP API POST 一个 JSON 请求体,并映射响应。使用 serp.cheap 时,端点是 https://api.serp.cheap/v1/search,并带上 X-API-Key 请求头 —— 无需任何外部 HTTP 库。

我需要第三方 Java SDK 吗?+

不需要 —— java.net.http(Java 11+)加上任意 JSON 库(Jackson、Gson)就足够了,因为 SERP API 只是一个普通的 HTTP+JSON 端点。如果你想要开箱即用的类型化调用、重试和分页,serp.cheap 也提供了带 Spring Boot 集成的官方 Java SDK。

获取你的 API 密钥

直接购买最便宜, 用银行卡或加密货币支付,无需 KYC。或通过市场。