You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RestSharp 110.0.1与.NET6设置RestClient认证器遇只读错误

解决RestSharp 110.0.1中RestClient.Authenticator只读的问题

在RestSharp 107及以上版本中,RestClient的Authenticator属性已改为只读,无法通过对象初始化器直接赋值,这就是你遇到错误的原因。官方文档的示例代码可能未及时适配新版本的API变更。

修改后的代码

只需要将Authenticator的配置移到RestClientOptions中即可解决问题,修改GetToken方法如下:

async Task<string> GetToken() {
    // 将Authenticator配置到RestClientOptions中
    var options = new RestClientOptions(_baseUrl) {
        Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret)
    };
    using var client = new RestClient(options);

    var request = new RestRequest("oauth2/token")
        .AddParameter("grant_type", "client_credentials");
    var response = await client.PostAsync<TokenResponse>(request);
    return $"{response!.TokenType} {response!.AccessToken}";
}

原理说明

RestSharp从107版本开始重构了客户端配置逻辑,所有与客户端相关的配置(包括认证器)都统一通过RestClientOptions进行设置,不再允许直接修改RestClient的属性,这样可以确保客户端实例的配置在创建时就固定,避免运行时变更带来的潜在问题。

内容的提问来源于stack exchange,提问作者SpookyBooky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:47:13