gpt4 book ai didi

java - 如何向 ODataClient (Apache Olingo) 添加 header ?

转载 作者:行者123 更新时间:2023-12-02 10:26:04 27 4
gpt4 key购买 nike

我在访问 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 没有设置额外 header 的 API,可能是因为它不直接拥有 HttpClient。它拥有我的 AbstractODataRequest 类,因此您可以使用 API 来为每个 HTTP 请求设置附加 header 。

在您的情况下,您可以在 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();

关于java - 如何向 ODataClient (Apache Olingo) 添加 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53950015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com