Я получаю сообщение об ошибке в методе POST, использующем API TeamTailor.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я получаю сообщение об ошибке в методе POST, использующем API TeamTailor.

Сообщение Anonymous »

Я пытаюсь реализовать два метода: один создает кандидата, который будет вставлен в Teamtailor, другой берет кандидата и помещает его в предложение о работе.
Очевидно, пока я отлаживаю метод, похоже, что он выдает исключение при генерации ответа. Если я попытаюсь распечатать тело запроса, он выдаст мне 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);
}
}
Я попробовал с почтальоном, и запросы (т. е. API-интерфейсы TeamTailor), похоже, работают. Но мои методы этого не делают. Я тоже пытался выполнить отладку и получаю эту ошибку: для шифрования GCM необходимо использовать другой ключ или iv.

Подробнее здесь: https://stackoverflow.com/questions/756 ... ailors-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»