
在消息处理程序中,一系列消息处理程序链接在一起。第一个处理程序接收 HTTP 请求,进行一些处理,然后将请求交给下一个处理程序。在某个时刻,响应会被创建并返回到链上。这种模式称为委托处理程序。
除了内置的服务器端消息处理程序之外,我们还可以创建自己的服务器端 HTTP 消息处理程序。 创建自定义服务器端 HTTP ASP.NET Web API 中的消息处理程序,我们使用DelegatingHandler。我们必须创建一个从System.Net.Http.DelegatingHandler派生的类。然后,该自定义类应重写 SendAsync 方法。
Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken CancellationToken);
该方法将 HttpRequestMessage 作为输入并异步返回 HttpResponseMessage。典型的实现执行以下操作:
public class CustomMessageHandler : DelegatingHandler{
protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken){
Debug.WriteLine("CustomMessageHandler processing the request");
// Calling the inner handler
var response = await base.SendAsync(request, cancellationToken);
Debug.WriteLine("CustomMessageHandler processing the response");
return response;
}
}委托处理程序还可以跳过内部处理程序并直接创建响应。
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
0
public class CustomMessageHandler: DelegatingHandler{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken){
// Create the response
var response = new HttpResponseMessage(HttpStatusCode.OK){
Content = new StringContent("Skipping the inner handler")
};
// TaskCompletionSource creates a task that does not contain a delegate
var taskCompletion = new TaskCompletionSource<HttpResponseMessage>();
taskCompletion.SetResult(response);
return taskCompletion.Task;
}
}以上就是Asp.Net webAPI C# 中 DelegatingHandler 的用法是什么?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号