我有一个用于获取在Swagger中创建的数据的API。我只有一个基本 URL 和一个用户名、密码和一个令牌。当我转到 URL 时,它将转到登录页面,登录后,我们可以访问 API 列表并从中获取数据。
现在我需要在 C# 中使用 restsharp 完成此操作。这样我就可以在 JSON 中获取结果,并且可以将值更新到数据库。
这是我在 C# 中使用的代码
var restClient = new RestClient("https://v3.fusesport.com/api/events/")
{
Authenticator = new HttpBasicAuthenticator("xxxxx", "xxxxx")
};
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Token", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
request.AddHeader("content-type", "application/json");
IRestResponse response = client.Execute(request);
这是连接关闭错误。
我在 chrome 中的邮递员应用程序中尝试了 API,它收到以下错误。
{
"detail": "Authentication credentials were not provided."
}
这是带有令牌的邮递员呼叫的屏幕截图 带令牌的邮递员
这是具有基本身份验证的邮递员呼叫的屏幕截图 在此处输入图像描述
你能帮我做错什么吗?我认为 API 正在使用基于会话的身份验证。 提前谢谢。
我认为您的标题不正确。而不是
request.AddHeader("Token", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
尝试添加
request.AddHeader("Authorization", "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b");