如何使用 Apache Olingo 发出 PUT 请求?

How to make a PUT request with Apache Olingo?

我正在尝试使用以下代码通过 HTTP PUT 请求传输实体。

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 也不是一个选项,因为此请求只允许 HttpMethod PATCHREPLACE.

在文档中我找到了一个函数 setMethod(HttpMethod method),但此方法仅适用于服务器而不适用于客户端实现 (https://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/ODataRequest.html)。

我进一步发现 setUseXHTTPMethod(boolean value),它通过 POST 隧道 PUT, MERGE, PATCH, DELETE。我检查了客户的配置以确保 isUseXHTTPMethodfalse,确实如此。 (函数参考:https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html

因此我想知道如何使用 Apache Olingo 发出 PUT 请求?

非常感谢您的意见。

ODataEntityUpdateRequestUpdateType.REPLACE 应该等同于 PUT 方法。

通知 the source code,第 31 行。

实施updateEntity方法。