asp.net – 向其他人提供一个Web API转发请求的最佳方式
发布时间:2020-12-15 20:38:33 所属栏目:asp.Net 来源:网络整理
导读:我有一些Web服务在不同的服务器上运行,我希望有一个Web服务在其余的“前面”运行,以决定应该根据标头值转发请求的Web服务(服务器). 这个想法是客户会发送请求,比如说: http://api.mysite.com/cars mysite.com上的API将检查请求,从API密钥(在标头中提供)中提
我有一些Web服务在不同的服务器上运行,我希望有一个Web服务在其余的“前面”运行,以决定应该根据标头值转发请求的Web服务(服务器).
这个想法是客户会发送请求,比如说: http://api.mysite.com/cars mysite.com上的API将检查请求,从API密钥(在标头中提供)中提取信息并重定向到适当的服务器,例如, http://server4.mysite.com/api/cars 这会起作用吗?我担心如何将响应(w / data)从“server4”返回给客户端.响应是仅返回给第一台服务器还是客户端实现响应? 解决方法
您需要做的就是构建一个Web API DelegatingHandler,如下所示:
public class ProxyHandler : DelegatingHandler { protected override async System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,System.Threading.CancellationToken cancellationToken) { UriBuilder forwardUri = new UriBuilder(request.RequestUri); //strip off the proxy port and replace with an Http port forwardUri.Port = 80; //send it on to the requested URL request.RequestUri = forwardUri.Uri; HttpClient client = new HttpClient(); var response = await client.SendAsync(request,HttpCompletionOption.ResponseHeadersRead); return response; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 必须是ASP.NET服务器控件属性属性
- asp.net – global.asax中应用程序的物理路径
- asp.net-mvc-4 – 在EF迁移配置类的Seed方法中获取App_Data
- .net – 需要临时报告组件
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程序
- asp.net-mvc – visual studio 2013“添加控制器”丢失
- asp.net – “字符串中没有引号”的正则表达式是什么?
- asp.net – 为什么visual studio给我类型没有为我的App_Cod
- 在ASP.NET中,获取基本UR1请求的最快方法是什么?
- asp.net-mvc – 在ASP.NET MVC中使用域对象和视图模型时避免
推荐文章
站长推荐
- asp.net-web-api – Web API ODataResult始终序列
- asp.net – 两个域之间的会话共享
- ASP.net上的URL路由,需要从url获取参数
- asp.net – 如何在控制器中获取路由URL?
- asp.net – 从多个Web.config文件访问appSetting
- asp.net-core – 将应用程序root路由到/ swagger
- ASP.NET MVC Web应用程序中的控制器是否应该调用
- ASP.NET MVC:如何使用控制器发送HTML电子邮件?
- asp.net – 使用WebHandler的HTTPHandler和IsReu
- asp.net-mvc-3 – 在ASP.NET MVC 3视图中渲染Sys
热点阅读