2017-01-24 2 views
0

Я пытаюсь передать объект через HTTP-запрос PUT, используя следующий код.Как сделать запрос PUT с Apache Olingo?

public ClientEntity createEntity(URI absoluteUri, 
     ClientEntity ce) { 

    ODataEntityCreateRequest<ClientEntity> request = client 
      .getCUDRequestFactory().getEntityCreateRequest(absoluteUri, ce); 
    request.setAccept("application/json;odata.metadata=minimal");  
    ODataEntityCreateResponse<ClientEntity> response = request.execute(); 
    return response.getBody(); 
} 

Функция getEntityCreateRequest, однако, только создает POST запрос и не позволяет (насколько я знаю), никаких изменений использованного HttpMethod.

К сожалению, ODataEntityUpdateRequest тоже не вариант, потому что этот запрос только позволяет HttpMethodPATCH или REPLACE.

В документации я нашел функцию setMethod(HttpMethod method), но этот метод доступен только для сервера, а не для реализации клиента (https://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/ODataRequest.html).

Далее я обнаружил setUseXHTTPMethod(boolean value), который туннелей PUT, MERGE, PATCH, DELETE через POST. Я проверил конфигурацию своего клиента, чтобы убедиться, что isUseXHTTPMethod - false, что и есть. (Ссылка на функции: https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html)

Следовательно, мне интересно, как сделать запрос PUT с Apache Olingo?

Благодарим вас за ввод.

ответ

1

ODataEntityUpdateRequest с UpdateType.REPLACE должен быть эквивалентен методу PUT.

Уведомление the source code, строка 31.

+0

Еще раз большое спасибо. Это решает проблему. :) –

1

Реализуйте метод updateEntity.

+0

Большое спасибо за ввод. Вы совершенно правы, 'updateEntity' имеет необходимый метод. :) Спасибо! –

Смежные вопросы