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

时间:2017-01-24 16:00:57

标签: java apache odata http-method 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),它通过PUT, MERGE, PATCH, DELETE隧道POST。我检查了客户端的配置,以确保isUseXHTTPMethodfalse,它是什么。 (参考函数:https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html

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

非常感谢您的投入。

2 个答案:

答案 0 :(得分:1)

使用 UpdateType.REPLACE

ODataEntityUpdateRequest 应该等同于PUT方法。

注意the source code,第31行。

答案 1 :(得分:1)

实施updateEntity方法。

相关问题