【发布时间】:2021-04-24 18:05:06
【问题描述】:
我在使用 RestSharp 时遇到了问题。
我的客户端中有一个方法,如下所示。当我发送一个带有有效令牌的请求时,我得到一个StravaActivityDto 类型的IEnumerable,它工作正常。
但是,当我发送请求并且我的令牌无效时,活动变量不是 null,而是 IEnumerable 类型为 StravaActivityDto,但它始终只有一个对象,并且每个属性都有一个默认值(例如Id=0,MaxSpeed=0)。
我已检查 Postman 中的行为,如果我使用无效令牌发出请求,则响应的状态代码为 401。
如果请求无效(这会导致使用默认值创建 StravaActivityDto),我如何阻止 RestSharp 反序列化响应。
我知道我可以使用request.Execute,然后检查IsSuccessful 状态,但我想在调用request.Get<>() 后获得null。
public async Task<IEnumerable<StravaActivityDto>> GetActivities(string token)
{
var request = new RestRequest("activities", DataFormat.Json);
request.AddHeader("authorization", "Bearer " + token);
var activities = await RestClient.GetAsync<IEnumerable<StravaActivityDto>>(request);
return activities;
}
【问题讨论】: