Restsharp returns 403 而 Postman returns 200

Restsharp returns 403 while Postman returns 200

这是 Postman 为成功调用我的页面而提供的(修改后的)代码段。

var client = new RestClient("http://sub.example.com/wp-json/wp/v2/users/me");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic anVyYTp3MmZacmo2eGtBOHJsRWrt");
IRestResponse response = client.Execute(request);

但是当放在我的 c# 应用程序中时,它 returns 403 被禁止,而 Postman 成功并收到 200。 当我在我的应用程序 (403) 中使用 httpclient 时,也会发生同样的事情。

改用RestClient.Authenticator

var client = new RestClient("http://sub.example.com/wp-json/wp/v2/users/me")
{ 
      Authenticator = new HttpBasicAuthenticator("User", "Pass")
};

var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);

编辑:

由于问题(如评论中所述)是 RestSharp 不通过重定向进行身份验证这一事实,我建议将 HttpClientHttpClientHandler 设置身份验证流的位置。

[解决方法] 使用下面的行作为 header

Headers.Add("User-Agent: 其他");