Вопросительный знак (?) заменяется на ? в jax-rs Джерси

#java #rest #web-services #jersey #jax-rs

#java #остальное #веб-сервисы #джерси #jax-rs

Вопрос:

При вызове API в jax-rs Джерси я должен передать параметр. Но это преобразуется в какой-то специальный символ. Я объявил переменную mCopy , которая будет принимать значение false или true в зависимости от некоторых условий. Мой URI равен

 URI:- https://idcs-oda-xxxxxxx.com/api/v1/bots/pushRequests?copy=true
  

Мой код

 Response rawres = client.target("https://idcs-oda-xxxxxxx.com")
                                .path("bots")
                                .path("pushRequests?copy=" mcopy")
                                .request().header("Authorization",access_token)
                                .post(null, Response.class);
  

выдает ошибку

   https://idcs-oda-xxxxxxx.com/api/v1/bots/pushRequests?copy=false, status=404, reason=Not Found
  

на самом деле pushRequests?copy=mCopy преобразуется в pushRequests?copy=false

как я могу сохранить? символ как есть?

Комментарии:

1. copy=true похоже, что это часть запроса или URL, а не часть пути.

2. @Gereon я. Гереон, теперь я понял.

Ответ №1:

Вы неправильно используете API. Вы хотите сделать:

 Response rawres = client.target("https://idcs-oda-xxxxxxx.com")
                                .path("bots")
                                .path("pushRequests")
                                .queryParam("copy", mcopy) // this is the change
                                .request().header("Authorization",access_token)
                                .post(null, Response.class);