Очевидно, пока я отлаживаю метод, похоже, что он выдает исключение при генерации ответа. Если я попытаюсь распечатать тело запроса, он выдаст мне json, содержащий ошибку. Если я попытаюсь отправить запрос с помощью почтальона, он вернет 201. Таким образом, он эффективно создаст кандидата.
Проблема в том, что даже если исключение генерируется, кандидат все равно создается.< /p>
Дополнительная проблема: я не могу вызвать другой метод для создания заявки на вакансию (т. е. размещения кандидата на работе), если метод createcandidate выдает исключение.Это Метод createCandidateUniRest:
Код: Выделить всё
private String createCandidateUniRest(String nome, String cognome, String email) throws UnirestException {
Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://api.teamtailor.com/v1/candidates")
.header("Authorization", "Token token=" + authToken)
.header("X-Api-Version", "20210218")
.header("Content-Type", "application/vnd.api+json")
.body("{\n " +
"\"data\": {\n " +
"\"type\": \"candidates\",\n " +
"\"attributes\": {\n " +
"\"first-name\": \"" + nome + "\",\n " +
"\"last-name\": \"" + cognome + "\",\n " +
"\"email\": \"" + email + "\"\n }\n }\n}")
.asString();
JSONObject jsonResponse = new JSONObject(response.getBody());
String candidateId = jsonResponse.getJSONObject("data").getString("id");
return candidateId;
}
Код: Выделить всё
public Response createJobApplication(String nome, String cognome, String email) throws CandidateCreationException {
String candidateId = "";
try {
candidateId = createCandidateUniRest(nome, cognome, email);
} catch (UnirestException e) {
throw new RuntimeException(e);
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/vnd.api+json");
JsonObject data = new JsonObject();
JsonObject attributes = new JsonObject();
attributes.addProperty("cover-letter", "");
attributes.addProperty("sourced", true);
attributes.addProperty("send-user-notifications", true);
data.add("attributes", attributes);
JsonObject candidate = new JsonObject();
candidate.addProperty("type", "candidates");
candidate.addProperty("id", candidateId);
JsonObject relationships = new JsonObject();
relationships.add("candidate", candidate);
JsonObject job = new JsonObject();
job.addProperty("type", "jobs");
job.addProperty("id", jobId);
relationships.add("job", job);
data.add("relationships", relationships);
data.addProperty("type", "job-applications");
JsonObject jobApplication = new JsonObject();
jobApplication.add("data", data);
RequestBody body = RequestBody.create(mediaType, jobApplication.toString());
Request request = new Request.Builder()
.url("https://api.teamtailor.com/v1/job-applications")
.method("POST", body)
.addHeader("Authorization", "Token token=" + authToken)
.addHeader("X-Api-Version", "20210218")
.addHeader("Content-Type", "application/vnd.api+json")
.build();
try {
Response response = client.newCall(request).execute();
return response;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Подробнее здесь: https://stackoverflow.com/questions/756 ... ailors-api
Мобильная версия