如何将 Header 添加到 ODataClient (Apache Olingo)?
How to Add Header to ODataClient (Apache Olingo)?
我在访问 odata 服务时遇到问题,因为它需要特定的 header,而且我无法直接在 ODataClient 上添加它,有人知道如何解决我的问题吗?
伪代码:
ODataClient client = ODataClientFactory.getClient();
client.addHeader("Header","123456789"); // <---- this code is what I am seeking
URI customersUri = client.newURIBuilder("uri/northwindmodel.svc")
.appendEntitySetSegment("Customers").build();
ODataRetrieveResponse<ODataEntitySetIterator<ODataEntitySet, ODataEntity>> response
= client.getRetrieveRequestFactory().getEntitySetIteratorRequest(customersUri).execute();
依赖关系:
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-client-core</artifactId>
<version>4.5.0</version>
</dependency>
ODataClient
没有和API设置额外的headers,可能是因为它直接没有直接拥有HttpClient
。它拥有我的 AbstractODataRequest
class,因此您有 API 可以为每个 HTTP 请求设置额外的 headers。
在您的情况下,您可以使用 ODataRequest
中的 addCustomHeader
方法。
例如。您的示例代码可以通过以下方式重构以实现目标。
ODataClient client = ODataClientFactory.getClient();
// client.addHeader("Header","123456789"); // <---- this code is what I am seeking
URI customersUri = client.newURIBuilder("uri/northwindmodel.svc")
.appendEntitySetSegment("Customers").build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> entitySetIteratorRequest =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(qryUri);
entitySetIteratorRequest.addCustomHeader("Custom-Header-key", "Custom-Header-Value");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> response = entitySetIteratorRequest.execute();
我在访问 odata 服务时遇到问题,因为它需要特定的 header,而且我无法直接在 ODataClient 上添加它,有人知道如何解决我的问题吗?
伪代码:
ODataClient client = ODataClientFactory.getClient();
client.addHeader("Header","123456789"); // <---- this code is what I am seeking
URI customersUri = client.newURIBuilder("uri/northwindmodel.svc")
.appendEntitySetSegment("Customers").build();
ODataRetrieveResponse<ODataEntitySetIterator<ODataEntitySet, ODataEntity>> response
= client.getRetrieveRequestFactory().getEntitySetIteratorRequest(customersUri).execute();
依赖关系:
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-client-core</artifactId>
<version>4.5.0</version>
</dependency>
ODataClient
没有和API设置额外的headers,可能是因为它直接没有直接拥有HttpClient
。它拥有我的 AbstractODataRequest
class,因此您有 API 可以为每个 HTTP 请求设置额外的 headers。
在您的情况下,您可以使用 ODataRequest
中的 addCustomHeader
方法。
例如。您的示例代码可以通过以下方式重构以实现目标。
ODataClient client = ODataClientFactory.getClient();
// client.addHeader("Header","123456789"); // <---- this code is what I am seeking
URI customersUri = client.newURIBuilder("uri/northwindmodel.svc")
.appendEntitySetSegment("Customers").build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> entitySetIteratorRequest =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(qryUri);
entitySetIteratorRequest.addCustomHeader("Custom-Header-key", "Custom-Header-Value");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> response = entitySetIteratorRequest.execute();