我正在尝试使用以下代码通过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
PATCH
或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)
因此我想知道如何使用Apache Olingo发出PUT
请求?
非常感谢您的投入。
答案 0 :(得分:1)
ODataEntityUpdateRequest 应该等同于PUT方法。
注意the source code,第31行。
答案 1 :(得分:1)
实施updateEntity方法。