Odpytuj Google z Javy używając wyłącznie biblioteki standardowej, korzystając z serp.cheap — albo sięgnij po oficjalne SDK dla Javy (w komplecie integracja ze Spring Boot). Tak czy inaczej to zwykły endpoint HTTP+JSON.
Najpierw szybki test poprawności z 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"}'
Kompletny przykład
Jeden plik, uruchamialny na Javie 17+ z java.net.http do żądania i Jackson do JSON (com.fasterxml.jackson.core:jackson-databind). Najpierw ustaw 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 mapują JSON w czysty sposób, a @JsonIgnoreProperties(ignoreUnknown = true) sprawia, że nowe pola odpowiedzi nigdy nie zepsują Twojego builda.
Spring Boot
W aplikacji Spring opakuj to samo wywołanie w @Service przy użyciu RestClient (Spring 6.1+):
@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);
}
}
Oficjalne SDK dla Javy dostarcza całe to okablowanie — plus ponawianie, paginację i typowane parametry — jako starter Spring Boot, więc wystarczy, że wstrzykniesz SerpClient i działasz.
Parametry, które warto znać
gl— kraj wyników (us,de,br, …). Zobacz lokalne SEO według kraju.hl— język interfejsu.page— indeksowana od 1; każda strona to osobne żądanie. Zobacz paginację.tbs— filtr czasu (qdr:d= ostatni dzień). Zobacz pełny opis parametrów.
Dalej
Wypróbuj serp.cheap
Skopiuj powyższy plik, dodaj swój klucz i masz żywe wyniki Google w Javie. 100 darmowych wyszukiwań po rejestracji — bez karty; potem płatność za użycie od $0,75/1k, a kredyty pozostają ważne przez 12 miesięcy.
- Zdobądź darmowy klucz API →
- Wolisz płacić kartą? serp.cheap jest też na RapidAPI (
$0,90/1k) i Apify ($1,50/1k).