2017-10-09 14 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を得ました。 私のURLが間違っています。私は、エラーは、issuetypeである2つの単語の間にスペースがあるという事実にあると思う。

すでにスペースの代わりに+を入れてみましたが、動作しません。 私の最初の呼び出しは完全に機能します。しかし、私は2番目の呼び出しを解決する方法を知らない。

+0

https://stackoverflow.com/questions/10786042/java-url-encoding-of-query-string-parametersこの質問を確認してください。 –

答えて

1

各パラメータの名前と値は、URLエンコードされている必要があります。次に、セパレータ( '&'または ';'のいずれか)で結合します。

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

を見て私は、文字列全体がjqlの値であればjqlprojectissuetypeは別々のパラメータであるかどうかわかりません。

...?jql=project%3DGB%20AND%20issuetype%3DProduct%20Risk&maxResults=1000 
:後者は、 "=" Sはまた、URLエンコードされるべきかどう

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

:前者の場合、スペースは、それらのURLエンコード形式( "20%")で置き換えなければなりません

+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(); 
    } 
関連する問題