2013-03-14 2 views
1

"잘못된 요청"오류를 발생 서버 및 쿼리가 올바른지 확인하기 위해 브라우저에서 url = server + '/'+ 쿼리 (= http://mic-build2.mic.co.at:8081/artifactory/api/search/artifact?name=at.mic.all.feature&repos=features-qa-test-snapshot)를 시도하여 정확히 내 검색 결과가 포함 된 파일을 생성합니다.Artifactory 검색 내가 그루비 스크립트와 REST API를 사용하여 아티팩트를 검색하기 위해 노력하고있어

{ "results ": [{"uri ":"http://mic-build2.mic.co.at:8081/artifactory/api/storage/features-qa-test-snapshot/at/mic/all/feature/at.mic.all.feature/20130313002236/at.mic.all.feature-20130313002236-win32.win32.x86.zip "} ...}

내 서버와 쿼리는 괜찮은 것처럼 보이지만 내 Groovy 스크립트에서는 작동하지 않습니다.

미리 도움 주셔서 감사합니다. 친절하게 생각합니다! Frank

답변

3

uri 경로는 '/'로 시작해야하며 HTTP 클라이언트는 추가하지 않습니다.

def query = ‘/artifactory/api/search/artifact?name=at.mic.all.feature&repos=features-qa-test-snapshot’ 

이렇게하면됩니다.

4

아티팩트 검색과 비슷한 문제가있었습니다 ("잘못된 요청"또는 "발견되지 않음"예외가 발생했습니다). 문제의 이유는 당신의 접근 방식으로 만든 HTTP 요청 형식이 잘못되는 경우 : artifactory request.log 내가 요청

/api/search/artifact?name=test 

분명히 잘못된 HTTP 요청입니다

/api/search/artifact%3Fname=test 

로 바뀝니다 것을 알 수있다. RESTClient documentation을 조사한 결과 전체 요청을 직접 문자열로 연결하는 대신 제공된 API를 사용하여 양식 HTTP 요청을 작성했습니다.

def queryPath = '/api/search/artifact' 
def server = new RESTClient('http://mic-build2.mic.co.at:8081') 
server.parser.'application/vnd.org.jfrog.artifactory.search.ArtifactSearchResult+json' = server.parser.'application/json' 
def resp = server.get(path: queryPath, query: [name: 'test', repos: 'your-repo']) 

이 방법을 사용하면 적절한 분리 기호로 수동으로 HTTP 요청을 작성할 필요없이 모든 매개 변수를 쿼리에 연결할 수 있습니다. 도움이되기를 바랍니다.

관련 문제