Как исправить сервер вернул HTTP код ответа 400 и переходы не могут быть обработаны - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь выполнить переходы JIRA с помощью java-кодирования, большую часть времени это работает, но вызов jira rest api иногда возвращает следующую ошибку: (На самом деле с этой ошибкой переход обрабатывается)

java.io.IOException: Server returned HTTP response code: 400 for URL: http://testingSite/jira/rest/api/latest/issue/ABC-123/transitions

Кроме того, в некоторых случаях вызов остальных API не возвращает ошибок, но переход не продолжается.

Вот мое кодирование, в большинстве случаев оно работает, поэтому мои дни испортились, чтобы понять, что происходит.

try {
    String authkey = "YWRtaW46cGFzc3dvcmQ=";
    URL url = new URL("http://testingSite/jira/rest/api/latest/issue/ABC-123/transitions");
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setRequestProperty("Authorization", "Basic " + authkey);
    connection.setRequestProperty("Accept-Charset", "UTF-8");
    connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");

    OutputStream os = connection.getOutputStream();
    String data = "{\"transition\": {\"id\": \"71\"}}";
    os.write(data.toString().getBytes("UTF-8"));
    os.close();

    content = connection.getInputStream();
    in = new InputStreamReader(content);
    br = new BufferedReader(in);
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (Exception e) {
    e.printStackTrace();
}

Ошибка исходит из этой строки:

content = connection.getInputStream();

Я ожидаю, что нет исключения, и все переходы обрабатываются, но поведение довольно странно для меня.

Поведение 1: сервер вернул код ответа HTTP: 400, но переход обрабатывается

Поведение 2. Сервер не возвращает никаких ошибок, но переход не обрабатывается

1 Ответ

0 голосов
/ 10 января 2019

Поэтому я искал справочную документацию здесь . И заявил, что

POST: 400 - если переход не указан.

У вас есть идентификатор перехода, который жестко закодирован, и, возможно, для этого типа проблемы он имеет другой идентификатор перехода или что-то подобное. Попробуйте позвонить

GET /rest/api/2/issue/{issueIdOrKey}/transitions?{transitionId}

чтобы убедиться, что ваш переход действительно существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...