2016-11-24 6 views
0

Я пытаюсь вызвать API JIRA rest. Используя HTTPBuilder, я вызываю сервер. Однако я получаю 400 Bad Request. В журналах JIRA я ничего не вижу.Отладка JIRA Rest Api Call

Каков наилучший способ, чтобы отладить эту проблему. Какую регистрацию я должен включить или где я должен смотреть, что говорит мне джира, в чем проблема.

Мой Reuest в логах клиента (заводной)

2016-11-24 19:44:22,761 DEBUG DefaultClientConnectionOperator - Connecting to jira.test.com:443 
2016-11-24 19:44:23,097 DEBUG RequestAddCookies - CookieSpec selected: best-match 
2016-11-24 19:44:23,108 DEBUG RequestAuthCache - Auth cache not set in the context 
2016-11-24 19:44:23,108 DEBUG RequestProxyAuthentication - Proxy auth state: UNCHALLENGED 
2016-11-24 19:44:23,108 DEBUG DefaultHttpClient - Attempt 1 to execute request 
2016-11-24 19:44:23,108 DEBUG DefaultClientConnection - Sending request: POST /jira/rest/api/2/issue HTTP/1.1 
2016-11-24 19:44:23,109 DEBUG wire - >> "POST /jira/rest/api/2/issue HTTP/1.1[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Accept: application/json[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Authorization: Basic cG1hOmJlZmltZTQ3[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Content-Type: application/json[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Content-Length: 86[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Host: jira.test.com:443[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "Connection: Keep-Alive[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "[\r][\n]" 
2016-11-24 19:44:23,110 DEBUG wire - >> "{"fields":{"project":{"key":"DEMO"},"summary":"REST Test","issuetype":{"name":"Bug"}}}" 
2016-11-24 19:44:23,332 DEBUG wire - << "HTTP/1.1 400 Bad Request[\r][\n]" 
2016-11-24 19:44:23,337 DEBUG wire - << "Date: Thu, 24 Nov 2016 18:44:23 GMT[\r][\n]" 
2016-11-24 19:44:23,337 DEBUG wire - << "Server: Apache-Coyote/1.1[\r][\n]" 
2016-11-24 19:44:23,337 DEBUG wire - << "X-AREQUESTID: 1184x11559x1[\r][\n]" 
2016-11-24 19:44:23,337 DEBUG wire - << "X-ASESSIONID: xxx[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "X-AUSERNAME: xxx[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "Cache-Control: no-cache, no-store, no-transform[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "X-Content-Type-Options: nosniff[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "Content-Type: application/json;charset=UTF-8[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "Set-Cookie: JSESSIONID=xxxx; Path=/jira/; HttpOnly[\r][\n]" 
2016-11-24 19:44:23,338 DEBUG wire - << "Set-Cookie: atlassian.xsrf.token=BH04-20JI-TPKW-BCOS|fd0f9908f0241d6289509e6c621348ee63ead9c9|lin; Path=/jira[\r][\n]" 
2016-11-24 19:44:23,339 DEBUG wire - << "Connection: close[\r][\n]" 
2016-11-24 19:44:23,339 DEBUG wire - << "Transfer-Encoding: chunked[\r][\n]" 
2016-11-24 19:44:23,339 DEBUG wire - << "[\r][\n]" 
2016-11-24 19:44:23,341 DEBUG DefaultClientConnection - Receiving response: HTTP/1.1 400 Bad Request 

Код для получения задачи выглядит следующим образом:

HTTPBuilder jiraHttp = new HTTPBuilder(jiraEndpoint) 
     jiraHttp.headers[ 'Authorization' ] = "Basic " + "$username:$password".getBytes('iso-8859-1').encodeBase64() 
     jiraHttp.headers[ 'Content-Type' ] = "application/json" 
     jiraHttp.ignoreSSLIssues(); 

     String issueString = "{\"fields\":{\"project\":{\"key\":\"10300\"},\"summary\":\"REST Test\",\"issuetype\":{\"key\":\"10004\"}}}"; 
     jiraHttp.post(contentType : 'application/json', path : '/jira/rest/api/2/issue', body: issueString); 
+0

Что такое тело ответа? –

ответ

0

Проблема косвенно решена. Я переключил HTTP-библиотеку на Джерси. С тех пор, как это работает, к сожалению, я не мог понять, что это была проблема orignal.

0

Как Bartlomiej уже говорилось, тело ответа, где доступно фактическое описание ошибки. Вам нужно захватить это и посмотреть.

Хотя я, вероятно, могу догадаться, в чем проблема. Плохой запрос означает, что опубликованный формат выпуска недействителен. Это, скорее всего, переменная issuetype. Вам нужно передать фактическое id вместо имени.

+0

К сожалению, тела ответа нет. Размещенные журналы - это проводные журналы, которые отображаются в HTTPBuilder. В ответе нет тела. Я попробовал запрос с помощью идентификаторов. та же проблема – user1587852

+0

Я обновил вопрос, чтобы он также показывал код ... У вас есть идея? – user1587852

+0

Две вещи: а) определенно тело ответа; б) ваша полезная нагрузка отличается от оригинала, а числовая переменная в 'project' должна быть' id'. 'key' является буквенно-цифровым. – rorschach

Смежные вопросы