2017-10-09 45 views
2

JIRA의 나머지 API를 사용하여 프로젝트 이름 및 문제 유형을 필터링하면서 문제를 검색하고 있습니다.공백이있는 URL 나머지 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 인 두 단어 사이에 공백이 있다는 사실에 있다고 생각한다.

이미 공백 대신에 +를 넣으려고했지만 작동하지 않습니다. 첫 번째 호출이 완벽하게 작동합니다. 하지만 두 번째 호출을 해결하는 방법을 모르겠습니다.

+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, projectissuetype 별도의 매개 변수 또는 전체 문자열이 jql에 대한 값인지 여부를 모르겠어요. 전자의 경우, 스페이스는 ("20 %") 그 URL로 인코딩 된 형태로 대체되어야한다

...?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(); 
    }