Pat*_*lan 6 .net xunit dotnet-httpclient asp.net-core
我正在使用AspNetCore TestServer并尝试连接到为NTLM身份验证配置的API服务.我要连接的服务需要访问System.Security.Claims.ClaimsPrincipal.Identity.
从我的控制台应用程序,我可以如下初始化他的HTTPClient,它的工作原理
HttpClientHandler handler = new HttpClientHandler()
{
UseDefaultCredentials = true,
PreAuthenticate = true
};
HttpClient client = new HttpClient(handler);
Run Code Online (Sandbox Code Playgroud)
但是,TestServer CreateClient方法不接受HttpClientHandler.那么如何配置使用UseDefaultCredentials?
小智 0
一个选项是在 HttpClientHandler 上创建一个重载构造函数并包装 TestServer\'s\xc2\xa0HttpClientHandler。在那里,从 \xc2\xa0SendAsync 方法中,您只需要调用他\xc2\xa0TestServer\'s\xc2\xa0 HttpClientHandler 的方法\xc2\xa0SendAsync,如下所示\n
\n\nif (_wrappedMessageHandler != null)\n{\n var method = typeof(HttpMessageHandler).GetMethod("SendAsync", BindingFlags.Instance | BindingFlags.NonPublic);\n var result = method.Invoke(_wrappedMessageHandler, new object[] { request, cancellationToken });\n return await (Task<HttpResponseMessage>)result;\n}\nelse\n{\n var response = await base.SendAsync(request, cancellationToken);\n return response;\n\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |