我試圖通過Jira Rest Api從JIRA獲取問題。當我使用捲曲時,這沒有問題,我得到了我想要的問題。問題是我想通過Java代碼來做到這一點(我使用Maven更改插件,只做了一些小的修改),但插件沒有找到問題。我得到200個狀態響應,但是響應不包含任何問題。WebClient - Jira rest api,出乎意料的結果
下面是從Java代碼片斷(該認證在安裝完成):
WebClient client = setupWebClient(jiraUrl);
doSessionAuth(client);
client.replacePath("/rest/api/2/search");
client.type(MediaType.APPLICATION_JSON_TYPE);
client.accept(MediaType.APPLICATION_JSON_TYPE);
client.query("key", "<Issue-key>");
Response res = client.get();
這給了我這個JSON 200響應:
{"startAt":0,"maxResults":50,"total":0,"issues":[]}
這是我的捲曲請求,這給了我預期的調整:
curl -u user:password -X GET -H "Content-Type:application/json" https://bankid.atlassian.net/rest/api/2/search?key=<Issue-key>&maxResults=10
我也試過用POST和JSON查詢:
WebClient client = setupWebClient(jiraUrl);
doSessionAuth(client);
String jqlQuery = new JqlQueryBuilder(log).urlEncode(false).filter(filter).build();
StringWriter searchParamStringWriter = new StringWriter()
JsonGenerator gen = jsonFactory.createGenerator(searchParamStringWriter);
gen.writeStartObject();
gen.writeStringField("jql", jqlQuery);
gen.writeNumberField("maxResults", nbEntriesMax);
gen.writeArrayFieldStart("fields");
gen.writeString("*all");
gen.writeEndArray();
gen.writeEndObject();
gen.close();
client.replacePath("/rest/api/2/search");
client.type(MediaType.APPLICATION_JSON_TYPE);
client.accept(MediaType.APPLICATION_JSON_TYPE);
log.debug("JQL query [" + searchParamStringWriter.toString() + "]");
Response searchResponse = client.post(searchParamStringWriter.toString());
這裏是一樣的。相應的捲曲給了我預期的結果(一個問題),但是這返回200響應,但沒有問題。
我似乎無法找出問題所在。任何指針?另外,是否有可能確切地查看客戶端發送請求的路徑(以確保我的設置沒有任何問題)?我已經閱讀了API,但沒有發現任何內容。