我有一个关于使用RestSharp对GET Url进行授权调用的问题。
我有一个提供的基本令牌,看起来像这样:dGVzdG5hbWU6dGVzdHBhc3N3b3Jk。
假设GET网址为https://sometest.api.com/todos?id=1,并且需要授权。
我如何在上面的GET Url中传递上面的令牌?
我尝试过:
var client = new RestClient("https://sometest.api.com") // base address
var request = new RestRequest("todos?id=1"); // resource
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic dGVzdG5hbWU6dGVzdHBhc3N3b3Jk");
var response = client.Execute(request);
这似乎不起作用。我是否需要添加基本令牌作为参数,或者同时添加标头和参数?
或者我需要在RestClient上使用client.Authenticator:
client.Authenticator = new HttpBasicAuthenticator("testname", "testpassword");
感谢您的帮助。
最好的问候
答案 0 :(得分:0)
您能否提供更多信息,如何得出结论呢?有什么例外吗?您可以提供一条错误消息吗?
您是如何获得该令牌的?令牌的到期时间是多少?
这就是我的做法,与您非常相似,除了我使用的是不同的令牌类型:
var request = CreateServerRequest(_configuration.SOME_URI);
request.AddHeader("Authorization", $"Bearer {Token}");
request.AddJsonBody(request);
var server = new RestClient(_configuration.SOME_ENDPOINT);
var serverResponse = server.Execute(request);
if (serverResponse.StatusCode == HttpStatusCode.OK)
{
return new ServiceResponse<bool>(true);
}
其中CreateServerRequest方法仅包含:
return new RestRequest(uri)
{
RequestFormat = DataFormat.Json,
Method = Method.POST
};
希望这会有所帮助, 欢呼和快乐的编码。