Evet, öyle. HttpClient
, DelegatingHandler
zinciri üzerinden bir HTTP isteği üretir. HttpClient
isteğini engellemek için, bu zincire geçersiz kılınmış SendAsync
yöntemiyle türetilmiş bir işleyici ekleyebilirsiniz.
Kullanımı:
var handler = new ExampleHttpHandler(fooService);
var client = new HttpClient(new ExampleHttpHandler(handler));
var response = await client.GetAsync("http://google.com");
Uygulama: Eğer ara katman için
public class ExampleHttpHandler : DelegatingHandler
{
//register the handler itself in DI to inject dependencies
public ExampleHttpHandler(FooService service) : this(service, null)
{
}
public ExampleHttpHandler(FooService service, HttpMessageHandler innerHandler)
{
//default handler should be the last!
InnerHandler = innerHandler ?? new HttpClientHandler();
}
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
//add any logic here
return await base.SendAsync(request, cancellationToken);
}
}
kastediyorsunuz? https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware – Adrian
Hayır. Başka bir sunucuyu HTTP üzerinden çağıran bir kitaplık içeren bir ASP.NET Core uygulamasına sahip olsaydım nasıl nasıl bilebilirim Bu kütüphanenin diğer sunucuyu çağırması uzun sürdü. Diğer teknolojiler (Açısal), giden bir HTTP isteği yapıldığında geri arama alabileceğiniz engelleyiciler kavramına sahiptir. .NET Core'un buna sahip mi? Teşekkürler – ChrisBellew