हाँ, यह करता है। HttpClient
DelegatingHandler
श्रृंखला के माध्यम से एक HTTP अनुरोध उत्पन्न करता है। HttpClient
अनुरोध को अवरुद्ध करने के लिए, आप उस श्रृंखला में ओवरराइड SendAsync
विधि के साथ एक व्युत्पन्न हैंडलर जोड़ सकते हैं।
उपयोग:
var handler = new ExampleHttpHandler(fooService);
var client = new HttpClient(new ExampleHttpHandler(handler));
var response = await client.GetAsync("http://google.com");
कार्यान्वयन:
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);
}
}
स्रोत
2017-06-24 13:40:03
आप middlewares की चर्चा करते हुए कर रहे हैं? https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware – Adrian
नहीं। अगर मेरे पास ASP.NET कोर ऐप है जिसमें एक लाइब्रेरी है जो HTTP के माध्यम से किसी अन्य सर्वर को कॉल करती है, तो मैं कैसे जान सकता हूं कि कैसे उस पुस्तकालय के लिए अन्य सर्वर को कॉल करने में काफी समय लगा। अन्य प्रौद्योगिकियों (कोणीय) में इंटरसेप्टर की अवधारणा होती है जहां आउटगोइंग HTTP अनुरोध किए जाने पर आप कॉलबैक प्राप्त कर सकते हैं। क्या .NET कोर में यह है? धन्यवाद – ChrisBellew