C# 重定向期间在RestSharp中保留授权标头

C# 重定向期间在RestSharp中保留授权标头,c#,api,restsharp,unauthorized,C#,Api,Restsharp,Unauthorized,我正在使用RestSharp进行GET api调用。api调用通过HTTP基本身份验证通过传递授权头进行身份验证 服务器使用状态代码307重定向api调用。我的客户端代码确实处理重定向,但授权标头不会传递给此重定向的api调用。如前所述,这样做是有正当理由的。因此,我得到一个未经授权的错误 如何配置RestClient以还原授权标头 var client = new RestClient("https://serverurl.com"); var request = new RestReques

我正在使用RestSharp进行GET api调用。api调用通过HTTP基本身份验证通过传递授权头进行身份验证

服务器使用状态代码307重定向api调用。我的客户端代码确实处理重定向,但授权标头不会传递给此重定向的api调用。如前所述,这样做是有正当理由的。因此,我得到一个未经授权的错误

如何配置RestClient以还原授权标头

var client = new RestClient("https://serverurl.com");
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Basic Z3JvdXAxOlByb2otMzI1");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Tenant-Id", "4892");

IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

我添加了一个检查,用下面的代码重新发送接收401的api请求

var client = new RestClient("https://serverurl.com");
var request = new RestRequest(Method.GET);

request.AddHeader("Authorization", "Basic Z3JvdXAxOlByb2otMzI1");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Tenant-Id", "4892");

IRestResponse response = client.Execute(request);

//Resend the request if we get 401
int numericStatusCode = (int)response.StatusCode;
if(numericStatusCode == 401) {
    var redirectedClient = new RestClient(response.ResponseUri.ToString());
    IRestResponse newResponse = redirectedClient.Execute(request);
    Console.WriteLine(newResponse.ResponseStatus);
}