-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathHttp.Module.Client.cs
More file actions
19 lines (15 loc) · 916 Bytes
/
Copy pathHttp.Module.Client.cs
File metadata and controls
19 lines (15 loc) · 916 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace LanguageExt;
public partial class Http
{
public static HttpClient client(Func<HttpRequestMessage, CancellationToken, HttpResponseMessage> sendAsync) =>
new (new MessageHandler((m, t) => Task.FromResult(sendAsync(m, t))));
public static HttpClient client(Func<HttpRequestMessage, HttpResponseMessage> sendAsync) =>
new (new MessageHandler((m, t) => Task.FromResult(sendAsync(m))));
public static HttpClient client(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> sendAsync) =>
new (new MessageHandler(sendAsync));
private class MessageHandler(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> Run) : HttpMessageHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
=> Run(request, cancellationToken);
}
}