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

使用RestSharp调用API失败:推荐方式失效,Get与IRestResponse不存在

RestSharp 107+ 版本API兼容问题解决

你遇到的问题是因为使用了RestSharp 107及以上的新版本,这个版本对API做了重大重构,移除了旧版的Method.GET、IRestResponse等类型,同时推荐使用异步调用方式。

以下是修正后的代码:

基础异步调用示例

using System;
using RestSharp;

// 初始化客户端,可通过RestClientOptions配置更多参数
var client = new RestClient("Link");

// 创建请求并添加头部
var request = new RestRequest()
    .AddHeader("DB-Client-Id", "clientId")
    .AddHeader("DB-Api-Key", "clientSecret")
    .AddHeader("accept", "application/json");

// 异步执行请求(新版本推荐方式)
var response = await client.ExecuteAsync(request);

// 处理响应
if (response.IsSuccessful) {
    Console.WriteLine("请求成功,响应内容:");
    Console.WriteLine(response.Content);
} else {
    Console.WriteLine($"请求失败:{response.ErrorMessage}");
}

泛型反序列化示例(直接获取强类型对象)

如果需要直接将响应解析为自定义类型,可以使用泛型方法:

// 假设你定义了对应的响应模型
public class ApiResponse {
    // 根据API返回结构定义属性
    public string Data { get; set; }
    public int Code { get; set; }
}

// 调用泛型异步方法
var response = await client.ExecuteAsync<ApiResponse>(request);

if (response.IsSuccessful) {
    // 直接使用强类型对象
    Console.WriteLine($"响应码:{response.Data.Code},数据:{response.Data.Data}");
}

关键变化说明

  • 枚举Method的成员命名改为PascalCase,旧版Method.GET替换为Method.Get(不过在RestRequest构造器中可以省略,直接通过client.GetAsync等快捷方法指定请求方式)
  • 旧版IRestResponse接口被移除,改用具体的RestResponse类,泛型场景使用RestResponse<T>
  • 新版本优先推荐异步API(ExecuteAsync、GetAsync、PostAsync等),同步方法Execute仍存在但返回RestResponse而非IRestResponse
  • 序列化默认使用System.Text.Json,若需使用Newtonsoft.Json,可通过RestClientOptions配置对应的序列化器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:39:50