Вызов hcm cloud rest из джерси с параметром запроса, имеющим пробел

я пытаюсь вызвать конечную точку hcm rest с помощью джерси

https:///resources/11.12.1.0/emps?q=Имя, например «Астха»

Я получаю следующее исключение

Exception in thread "main" java.lang.IllegalArgumentException
    at java.net.URI.create(URI.java:842)
    at com.sun.jersey.api.client.Client.resource(Client.java:434)
..
Caused by: java.net.URISyntaxException: Illegal character in query at index 93: https://<my-hcm-url>/resources/11.12.1.0/emps?q=FirstName like 'Astha'
    at java.net.URI$Parser.fail(URI.java:2809)
    at java.net.URI$Parser.checkChars(URI.java:2982)
    at java.net.URI$Parser.parseHierarchical(URI.java:3072)
    at java.net.URI$Parser.parse(URI.java:3014)
    at java.net.URI.<init>(URI.java:578)
    at java.net.URI.create(URI.java:840)
    ... 3 more

Итак, я попытался закодировать URL

try {
    URL = URLEncoder.encode(URL, "UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

Но это дает мне

Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.lang.IllegalArgumentException: URI is not absolute
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
    at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:105)
    at com.sun.jersey.api.client.Client.handle(Client.java:652)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    at com.sun.jersey.api.client.WebResource.get(WebResource.java:193)
......
Caused by: java.lang.IllegalArgumentException: URI is not absolute
    at java.net.URI.toURL(URI.java:1080)
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:163)
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)

Простые параметры запроса с '=' отлично работают с нашей кодировкой и всеми ..like /emps?q=FirstName='Astha' Но я хочу использовать оператор 'like', который требует пробела в URL-адресе. Как заставить его работать? Пожалуйста помоги

Я попытался заменить пробел на %20 и +, как описано в разделе Пробелы в URL-адресах?. Это не сработало для меня. Это не дает никакого результата.

API конечной точки отдыха hcm доступен здесь https://docs.oracle.com/en/cloud/saas/global-human-resources/r13-update17d/farws/Querying_a_Collection.html

Кто-нибудь использовал этот API раньше? Если да, то как вызвать ниже из java с помощью джерси?

/resources/latest/emps?q=FirstName как 'Ki%'


person Priya Darsini    schedule 19.06.2018    source источник
comment
Я обновил вопрос с дополнительными деталями. Ответы, данные в дублирующем вопросе, не сработали для меня в моем случае использования.   -  person Priya Darsini    schedule 19.06.2018
comment
Если вы «пытались заменить пробел», обновите свой код, чтобы показать, что вы пытались.   -  person Dour High Arch    schedule 19.06.2018
comment
Нашел проблему Проблема с шапкой. Мне нужно добавить заголовок REST-Framework-Version со значением 3. После его добавления все заработало. ‹code› Ресурс WebResource = c.resource(ENDPOINT_URL); Строковый ответ = resource.queryParams(queryParams).header(REST-Framework-Version,3).get(String.class);   -  person Priya Darsini    schedule 02.08.2018