如何使用 DalSoft.RestClient 传递凭据?
How do I pass credentials with DalSoft.RestClient?
我正在尝试使用 DalSoft.RestClient 对内部服务进行 restful 调用,该服务需要提供网络凭据(对于我的用例是默认凭据)。
RestClient
的构造函数提供了一个重载来传递 IHttpClientWrapper
,我可以实现处理凭据,但我希望有一个开箱即用的解决方案来将凭据传递给 RestClient
.
如何将凭据传递给 DalSoft.RestClient
?
对于通过 header 设置的任何凭据,例如 basic 或 oauth,您可以使用 Headers 方法。 oauth2 不记名令牌示例:
dynamic client = new RestClient("http://localhost/");
client
.Headers(new { Authorization = "Bearer " + bearerToken })
.MyResource
.Get();
如果您目前正在谈论 kerberos 或 ntlm,则没有执行此操作的方法,但正如您所建议的,您可以实施 IHttpClientWrapper 来执行此操作。奇怪的是,使用 HttpClientHandler 将凭据传递给 HttpClient。以下是如何执行此操作的示例:
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential();
HttpClient client = new HttpClient(handler);
我意识到实现 IHttpClientWrapper 只是为了做到这一点并不理想,因此如果您需要此功能,我会考虑将其添加到构造函数中。它看起来像这样:
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential();
new RestClient("http://localhost/", new Config(handler));
Update this is now supported as of 3.0
我正在尝试使用 DalSoft.RestClient 对内部服务进行 restful 调用,该服务需要提供网络凭据(对于我的用例是默认凭据)。
RestClient
的构造函数提供了一个重载来传递 IHttpClientWrapper
,我可以实现处理凭据,但我希望有一个开箱即用的解决方案来将凭据传递给 RestClient
.
如何将凭据传递给 DalSoft.RestClient
?
对于通过 header 设置的任何凭据,例如 basic 或 oauth,您可以使用 Headers 方法。 oauth2 不记名令牌示例:
dynamic client = new RestClient("http://localhost/");
client
.Headers(new { Authorization = "Bearer " + bearerToken })
.MyResource
.Get();
如果您目前正在谈论 kerberos 或 ntlm,则没有执行此操作的方法,但正如您所建议的,您可以实施 IHttpClientWrapper 来执行此操作。奇怪的是,使用 HttpClientHandler 将凭据传递给 HttpClient。以下是如何执行此操作的示例:
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential();
HttpClient client = new HttpClient(handler);
我意识到实现 IHttpClientWrapper 只是为了做到这一点并不理想,因此如果您需要此功能,我会考虑将其添加到构造函数中。它看起来像这样:
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential();
new RestClient("http://localhost/", new Config(handler));
Update this is now supported as of 3.0