2017-10-09 139 views
2

我正在使用JIRA的其餘API在篩選項目名稱和問題類型時檢索問題。帶有空格的URL rest api參數

當我嘗試使用API​​調用,如:

String url3 = "jiraURL/rest/api/2/search?jql=project=GB AND issuetype=Requirement&maxResults=1000"; 

它的工作原理!

但是當我嘗試:

String url3 = jiraURL/rest/api/2/search?jql=project=GB AND issuetype=Product Risk&maxResults=1000"; 

HttpClientErrorException: 400。 含義我的網址錯誤。我認爲錯誤在於事實上兩個單詞之間有一個空格是issuetype。

我已經嘗試把+而不是空格,但不起作用。 我的第一個電話很完美。但我不知道如何解決第二個電話。

+0

https://stackoverflow.com/questions/10786042/java-url-encoding-of-query-string-parameters檢查這個問題。 –

回答

1

每個參數的名稱和值都應該用URL編碼。然後應該用分隔符('&'或';')連接。縱觀

...?jql=project=GB AND issuetype=Product Risk&maxResults=1000 

我不知道jqlprojectissuetype是否是獨立的參數,或者如果整個字符串是jql的值。如果是前者,間隔應與它們的URL編碼形式( 「%20」)來代替:

...?jql=&project=GB%20AND%20issuetype=Product%20Risk&maxResults=1000 

如果是後者,在 「=」 S也應該URL編碼:

...?jql=project%3DGB%20AND%20issuetype%3DProduct%20Risk&maxResults=1000 
+0

查詢在jql = – Urban

+0

之後開始我想你應該說'jql'參數應該是(編碼形式)「project = GB AND issuetype = Product Risk」。你會想要後者。 – ericP

+0

我可悲地繼續收到400錯誤 – Urban

1

你可以試試嗎?

try { 
     String url3 = URLEncoder.encode("jiraURL/rest/api/2/search?jql=project=GB AND issuetype=Product Risk&maxResults=1000", "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    }