Как вызвать метод PUT из клиентской Java?

У меня есть метод ниже:

@PUT
@Path("/reduceEnergy/{id}/{action}")
String reduceEnergyConsumption(@PathParam("id") int id, 
                               @PathParam("action") String action);

Я хочу вызвать этот метод из клиента. (В случае, когда у меня есть метод GET, я написал так:

String response = target.path("air_quality")
                        .path("reduceEnergy/"+action)
                        .request()
                        .accept(MediaType.TEXT_PLAIN)
                        .get(String.class);
System.out.println(response);

Но теперь у меня есть метод PUT. Я написал так:

Но я не знаю, как его завершить или исправить.

Response response = target.path("aqsensor")
                          .path("reduceEnergy/"+pr+"/"+action)
                          .request()
                          .accept(MediaType.TEXT_PLAIN)
                          .put(null);
System.out.println(response.getStatus());

Спасибо за помощь в поиске решения.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
366
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете отправить null в путе, вам нужно отправить Сущность

Учитывая следующее определение конечной точки:

@Path("myresource")
public class MyResource {

    @PUT
    @Path("/reduceEnergy/{id}/{action}")
    public String reduceEnergyConsumption(@PathParam("id") int id, 
                                          @PathParam("action") String action) {
        System.out.println("id: " + id);
        System.out.println("action: " + action);
        return "";
    }
}

Вы можете сделать это следующим образом:

Entity<String> userEntity = Entity.entity("", MediaType.TEXT_PLAIN);

Response response = target.path("myresource/reduceEnergy/10/action")
                          .request()
                          .put(userEntity);

System.out.println("Status: " + response.getStatus());

Это выводит:

id: 10
action: action
Status: 200

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