Зависимости (Gradle)
Убедитесь, что в вашем файле build.gradle присутствуют следующие зависимости:
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'org.json:json:20231013'
}
Важные примечания:
- Параметры GET
и являются обязательными и должны быть заменены на реальные значения. - поле заголовка
Referer
является обязательным и содержит страницу, с которой был изначально инициирован вызов API. Например, если ваша страница —https://example-publisher-site.com/find-jobs/
, то поле Referer должно содержать именно это значение. - поля
search
иlocation
необязательны, но ограничены вашей страной
Пример кода
import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.IOException;
import java.util.Base64;
public class CareerjetApiWithJobs {
public static void main(String[] args) {
String apiKey = "<API_KEY>";
String userIp = "<USER_IP>";
String userAgent = "<USER_AGENT>";
String referer = "https://example-publisher-site.com/find-jobs/?s=java+developer&l=Москва";
HttpUrl url = new HttpUrl.Builder()
.scheme("https")
.host("search.api.careerjet.net")
.addPathSegments("v4/query")
.addQueryParameter("locale_code", "ru_KZ")
.addQueryParameter("keywords", "java developer")
.addQueryParameter("location", "Москва")
.addQueryParameter("user_ip", userIp)
.addQueryParameter("user_agent", userAgent)
.build();
String credentials = apiKey + ":";
String basicAuth = "Basic " + Base64.getEncoder().encodeToString(credentials.getBytes());
Request request = new Request.Builder()
.url(url)
.get()
.header("Content-Type", "application/json")
.header("Authorization", basicAuth)
.header("Referer", referer)
.build();
OkHttpClient client = new OkHttpClient.Builder()
.callTimeout(java.time.Duration.ofSeconds(2))
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("HTTP Status Code: " + response.code());
if (response.body() != null) {
String responseBody = response.body().string();
JSONObject result = new JSONObject(responseBody);
// Check if response type is JOBS
if ("JOBS".equals(result.optString("type"))) {
int hits = result.optInt("hits");
int pages = result.optInt("pages");
System.out.println("Found " + hits + " jobs on " + pages + " pages\n");
JSONArray jobs = result.optJSONArray("jobs");
if (jobs != null) {
for (int i = 0; i < jobs.length(); i++) {
JSONObject job = jobs.getJSONObject(i);
System.out.println("URL : " + job.optString("url"));
System.out.println("TITLE : " + job.optString("title"));
System.out.println("COMPANY : " + job.optString("company"));
System.out.println("SALARY : " + job.optString("salary"));
System.out.println("DATE : " + job.optString("date"));
System.out.println("DESCRIPTION : " + job.optString("description"));
System.out.println("LOCATIONS : " + job.optString("locations"));
System.out.println();
}
}
} else {
System.out.println("Response type is not 'JOBS'");
}
} else {
System.out.println("Empty response body.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}