我正在尝试使用 Google 的 .Net 客户端库 (Analytics v3) 通过我的 GA 服务帐户获取数据。一切工作正常,除了在向 GA API(使用客户端库)发出请求期间偶尔会出现超时。我想调整超时逻辑(如果可能的话,通过库添加重试逻辑 - 但这是一个较小的问题)。
目前我无法弄清楚如何通过客户端库修改超时设置。通过阅读他们的源代码(因为我在 .net 方面找不到任何类似有用的文档),看起来我需要实现“IConfigurableHttpClientInitializer”。下面是我想到的一个示例,但我不确定它是否正确或如何将其与我现有的代码集成。下面还摘录了我的相关代码。
设置超时的类
public class TimeoutInitializer : IConfigurableHttpClientInitializer
{
public void Initialize(ConfigurableHttpClient httpClient)
{
httpClient.Timeout = TimeSpan.FromMinutes(3);
}
}
Run Code Online (Sandbox Code Playgroud)
现有代码
private async Task<GaData> GetAnalyticsData(string profileId, DateTime begin, DateTime end, string metrics, string dimensions)
{
GoogleCredential credential = AnalyticsHelper.GetCredentials(options.GoogleAnalyticsOptions);
var service = new AnalyticsService(new BaseClientService.Initializer() { HttpClientInitializer = credential });
DataResource.GaResource.GetRequest request = service.Data.Ga.Get($"ga:{profileId}", AnalyticsHelper.FormatDate(begin), AnalyticsHelper.FormatDate(end), metrics);
if (!string.IsNullOrEmpty(dimensions))
{
request.Dimensions = dimensions;
}
return await …Run Code Online (Sandbox Code Playgroud)