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

时间:2018-11-19 12:03:19

标签: c# api restsharp unauthorized

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

服务器使用状态码307重定向api调用。我的客户端代码确实处理了重定向,但未将授权标头传递给此重定向的api调用。出于here所提及的正当理由而完成了此操作。因此,我确实收到了未经授权的错误。

如何配置RestClient恢复授权标头?

transform.LookAt (transform.position + movement.normalized);

1 个答案:

答案 0 :(得分:1)

我添加了一张支票,该支票重新发送了使用以下代码接收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);
}