在 .NET 中保留经代理配置的 GoogleCredential 副本
在获取前配置令牌的 HTTP 工作并继续传递 routedCredential;原始 credential 保留其先前的配置。
var proxy = new System.Net.WebProxy("http://proxy.example:8080")
{
Credentials = proxyCredentials
};
var factory = Google.Apis.Http.HttpClientFactory.ForProxy(proxy);
var routedCredential = credential.CreateWithHttpClientFactory(factory);credential 是应用程序现有的 GoogleCredential。该方法返回一个副本,因此请将 routedCredential 用于令牌工作或 API 身份验证,而不要继续使用原始对象。
proxyCredentials 标识中间账户;如果不需要,请省略初始化器。在这种未通过身份验证的情况下,当令牌目标是公开的且允许使用公共代理路由时,HTTP 代理列表可以提供端点候选。保留 Google credential 所需的类型和 scope。代理凭据不能替代客户端密钥、服务账号密钥或访问令牌。
API 服务客户端是另一条构建路径。当服务请求和令牌请求都需要代理时,也要为该传输提供预期的 factory。仅配置服务仍可能使先前的令牌请求无法连接。
缓存的访问令牌可避免新的交换。应比较实际失败的主机和请求,而不要把缓存令牌操作或对象构建视为新的代理连接。