Закодированный Java не дает такой же результат, как обычный URL - PullRequest
0 голосов
/ 24 октября 2018

Здравствуйте, я пытаюсь получить объект json, используя метод GET, сформировать URL-адрес, используя API отдыха, поэтому при отправке обычного URL-адреса:

https://hostname/fil/rest/api/2/search?jql=project= "Station Server" AND status != Done AND assignee = "User New" ORDER BY priority DESC&maxResults=2

, скажем, он возвращает объект json с 2-мя элементами.внутри

это дает мне результат, который я хочу, но когда я кодирую его, чтобы я мог использовать его в своем коде Java, он дает мне другой результат, он дает объект json с 25000 элементом внутри

Этозакодированный URL:

https://hostname/fil/rest/api/2/search?jql%3Dproject%3D%20%22Station%20Server%22%20AND%20status%20%21%3D%20Done%20AND%20assignee%20%3D%20%22User%20New%22%20ORDER%20BY%20priority%20DESC%26maxResults%3D2

Я тестирую его внутри Java-кода и внутри Google Rest API, он дает мне тот же результат:

String url2 = "https://jira/jira/rest/api/2/search?";
String toencode = "jql=project= \"Station server\" AND status != Done AND assignee = \"User New\" ORDER BY priority DESC&maxResults=2";

String url3 = URLEncoder.encode(toencode,"UTF-8").replaceAll("\\+", "%20");
String url = url2 + url3;

и после этого я отправляю запрос на получение с помощьюurl Что я делаю не так, пожалуйста?

1 Ответ

0 голосов
/ 25 октября 2018

Я думаю, что ваша проблема в том, что вы кодируете '=' после jql.

Этот конкретный '=' должен быть частью URL, поэтому сервер правильно интерпретирует его как параметр запроса.Кодируя его, вы в основном отправляли запрос на все результаты, поскольку сервер интерпретирует это как поиск без запроса jql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...