无法找到类型或命名空间名称"IRestResponse"(是否缺少using指令或程序集引用?)

11

我有一个关于下面的IRestResponse的问题:

Translated text:

我有一个关于下面的IRestResponse的问题:

public async Task<CezanneToken> GetAccessToken()
{
    var client = new RestClient(WebConfigurationManager.AppSettings["TokenUrl"]);
    var request = new RestRequest();
    request.Method = Method.Post;
    request.AddHeader("cache-control", "no-cache");
    request.AddHeader("content-type", "application/x-www-form-urlencoded");
    request.AddParameter("application/x-www-form-urlencoded", "grant_type=client_credentials&client_id=" + WebConfigurationManager.AppSettings["ClientId"] + "&client_secret=" + WebConfigurationManager.AppSettings["ClientSecret"] + "", ParameterType.RequestBody);

    IRestResponse response = await client.ExecuteAsync(request);
    string serStatus = ((RestResponseBase)response).Content;
    CezanneToken details = JsonConvert.DeserializeObject<CezanneToken>(serStatus);
    string Token = details.access_token;
    
    return details;
}

IRestResponse 抛出异常。

类型或命名空间名称“IRestResponse”未找到(是否缺少 using 指令或程序集引用?) 我无法让它起作用。 IntelliSense 建议使用 RestResponse 而非 IRestResponse

但是当我使用 RestResponse 时,响应返回 Bad Request

上面的代码示例是从 Visual Basic “翻译”过来的,但是在 VB 中它完美运行。我不知道使用 RestResponse 是否导致了 Bad Request 的问题,但我认为需要像在 VB 中一样使用 IRestResponse

我也看到有人使用 IRestResponse,但对我来说却不起作用。我已经使用了 using RestSharp;,但还需要其他什么吗?


也许你可以阅读一下 RestSharp 的文档。 - Alexey Zimarev
问题也在这里提到:https://dev59.com/VVEG5IYBdhLWcg3wMGPV - chri3g91
4个回答

21

安装旧版的RestSharp NuGet包(<=106.15)。

RestSharp的最新主要版本有破坏性更改,这些更改在文档中进行了描述。


5

我降级到106.15版本,这对我有用。


3
根据RestSharp文档 https://restsharp.dev/v107/#recommended-usage
IRestResponse接口已被弃用。你将得到一个RestResponse或RestResponse的实例作为返回。
只需将NuGet包更新至最新稳定版本v.108.03后,Execute请求按预期工作,不再出现编译错误。
RestResponse response = _client.Execute(request);  

或者

RestResponse response = await client.ExecuteAsync(request);

2
由于IRestResponse已被弃用,建议使用RestResponse。这应该可以解决错误。
RestResponse response = _client.Execute(request);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接