如何使用 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
PATCH
或 REPLACE
.
在文档中我找到了一个函数 setMethod(HttpMethod method)
,但此方法仅适用于服务器而不适用于客户端实现 (https://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/ODataRequest.html)。
我进一步发现 setUseXHTTPMethod(boolean value)
,它通过 POST
隧道 PUT, MERGE, PATCH, DELETE
。我检查了客户的配置以确保 isUseXHTTPMethod
是 false
,确实如此。 (函数参考:https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html)
因此我想知道如何使用 Apache Olingo 发出 PUT
请求?
非常感谢您的意见。
ODataEntityUpdateRequest 和 UpdateType.REPLACE 应该等同于 PUT 方法。
通知 the source code,第 31 行。
实施updateEntity方法。
我正在尝试使用以下代码通过 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)
,它通过 POST
隧道 PUT, MERGE, PATCH, DELETE
。我检查了客户的配置以确保 isUseXHTTPMethod
是 false
,确实如此。 (函数参考:https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html)
因此我想知道如何使用 Apache Olingo 发出 PUT
请求?
非常感谢您的意见。
ODataEntityUpdateRequest 和 UpdateType.REPLACE 应该等同于 PUT 方法。
通知 the source code,第 31 行。
实施updateEntity方法。