Вопросительный знак в значении @InjectLink кодируется как%3F. Как это предотвратить?

Я использую функцию заголовков ссылок Джерси для создания заголовков ссылок HTTP:

@InjectLink(value="users/?orgId=12345&page=0",rel="first")

Работает хорошо, за исключением вопросительного знака - это кодируется в%3F, и в результате URL выглядит следующим образом: http://localhost:8080/app/users/%3ForgId=12345&page=0

Есть ли способ предотвратить кодирование и оставить знак вопроса как есть?

2 ответа

Это не подходящий случай для @InjectLink(value), Построение параметров URL должно использоваться @InjectLink(method, bindings...),

Например:

@InjectLink(
  resource = UserResource.class,
  method ="getUserById", 
  bindings ={@Binding(name = "orgId", value = "${instance.orgId}")},
  style =  Style.ABSOLUTE,
  ... )

И целевой ресурс Джерси UserResource.java:

@Path("users/{orgId}") 
public User getUserById(@PathParam("orgId") String orgId) {...}

Вопрос mar - это URL, закодированный для строки параметров запроса, поэтому нормально иметь%3 на вашем пути. Попробуйте использовать 'bindings' или поставить @Queryparams следующим образом. Как заставить URIBuilder.path(...) кодировать такие параметры, как "%AD"? Этот метод не всегда правильно кодирует параметры в процентах

Другие вопросы по тегам