【问题标题】:Simple OData Client 4.0: Add custom headers to internal batch requestsSimple OData Client 4.0:向内部批处理请求添加自定义标头
【发布时间】:2018-05-23 17:05:29
【问题描述】:

我正在尝试通过 Simple OData Client 4.0 批量发送多个请求。由于我需要内部路由服务器端的自定义标头,因此我将它们添加到客户端的 BeforeRequest 部分。这也是针对整个批处理请求完成的,但是批处理的内部请求没有这些所需的标头,并且客户端似乎无法将它们添加到每个内部请求中。

...

settings.BeforeRequest = (e) =>
{
    e.Headers.Add("Authorization", "OAuth oauth_consumer_key=" + apiKey);
    e.Headers.Add("V", "1");
};

...

var batch = new ODataBatch(settings);
var resultingFonts = new List<FontDto>();

// Search for the font name, to lower makes it case insensitive.
foreach (string fontName in fontNames)
    batch += async c => resultingFonts.Add((await c.For<FontDto>("Fonts").Filter(" ... ").FindEntryAsync()));

batch.ExecuteAsync().Wait();

有什么方法可以将我的自定义标头添加到客户端的内部请求中?以便将自定义标头添加到批处理请求中,但不会添加到内部请求中。

【问题讨论】:

  • 遇到同样的问题。解决了吗?
  • @BlueClouds 最后我使用了 Microsoft HttpClient,自己构建请求并将它们添加到批处理中。遗憾的是,我没有看到 Simple Odata Client 的解决方案。

标签: c# odata


【解决方案1】:

尝试使用 Client.UpdateRequestHeader() 方法添加您的自定义标头。

var client = new ODataClient(settings);
client.UpdateRequestHeader(...);
var batch = new ODataBatch(client);

【讨论】:

  • 值得补充的是,该方法不包含在 IODataClient 接口中,因此要使用它,您必须引用具体的 ODataClient 类。
猜你喜欢
  • 2012-11-15
  • 2017-11-06
  • 2013-11-13
  • 2021-08-25
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
相关资源
最近更新 更多