Моя API
конечная точка выглядитResteasy: @PathParam возвращает первое слово, если строка содержит пробелы
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("groups/{groupName}")
public Response getCategoriesByGroupName(@PathParam("groupName") @Nonnull final String groupName) {
return Response.ok(getCategoryTO().getCategoriesByGroupName(categoryManager, groupName)).build();
}
Когда я пытаюсь попасть в конечную точку, как
curl -H"Content-Type: application/json" -H"BEARER:792345452:78f7f8a4-a8c9-454a-93a8-6633a1076781:169000000" "https://myapp.com/rest/categories/groups/Utilities"
я получаю правильный JSON
назад, то есть groupName
правильно заменен Utilities
Но когда я сделаю
curl -H"Content-Type: application/json" -H"BEARER:792345452:78f7f8a4-a8c9-454a-93a8-6633a1076781:169000000" "https://myapp.com/rest/categories/groups/Food & Drink"
Я вижу ошибка сервера, как
Caused by: javax.ejb.EJBException: javax.persistence.NoResultException: no categories exists with groupName: Food
Проблема в том, что groupName
был замещен, как Food
вместо Food & Drink
Я попытался с другими groupName
с и понял, что всякий раз, когда мой groupName
имеет пробелы, только первое слово заменяется на groupName
Как исправить эту проблему, так что t целая строка, прошедшая в URL
, становится groupName
?
Мой сервер развернут на Wildfly 8
'' & специальный символ. Вам нужно закодировать его. –
Можете ли вы мне посоветовать, как это сделать? – daydreamer
http://www.degraeve.com/reference/urlencoding.php –