2014-09-03 2 views
0

Я пытаюсь научиться веб-служб RESTful с использованием ДжерсиGetting 404 Не найдено при выполнении поиска JIRA для проекта

Я написал несколько Java-код, чтобы вернуть JSON для поиска JIRA для проекта ID, код основанный на том, что созданный Бернд Хорта (BP206 в connect2014)

 ClientConfig config = new DefaultClientConfig(); 
     Client client = Client.create(config); 
     HTTPBasicAuthFilter authFilter = new HTTPBasicAuthFilter("username", "password"); 
     client.addFilter(authFilter); 
     WebResource service = client.resource(getBaseURI()); 

     String searchquery = "search?jql=id=" + id + "&maxResults=5000"; 
     System.out.println("Query=" + searchquery); 

     String json = service.path(searchquery).accept(
       MediaType.APPLICATION_JSON).get(String.class); 

Я проверил результаты поиска, используя как Почтальон и положить его в браузер URL и возвращает данные.

http://myserver:8080/rest/api/2/search?jql=id=12408&maxResults=5000 

Когда я пытаюсь использовать его в своем java-коде, я получаю следующее сообщение об ошибке;

com.sun.jersey.api.client.UniformInterfaceException: GET http://myserver:8080/rest/api/2/search%3Fjql=id=12408&maxResults=5000 returned a response status of 404 Not Found 

, похоже, меняется '?' на «% 3f», который поиск не нравится

ответ

0

Вы указываете, что запрос как часть пути, поэтому оно было экранированы, как например:

String json = service.path(searchquery).accept(
      MediaType.APPLICATION_JSON).get(String.class); 

Вы хотите сделать это параметр запроса :

String json = service.path("search") 
      .queryParam("jql", "id=" + id) 
      .queryParam("maxResults", "5000) 
      .accept(MediaType.APPLICATION_JSON).get(String.class); 
+0

Большое спасибо за ваш ответ –

Смежные вопросы