对ASP.NET Web API的请求的“透明”服务器端代理

AGS

具有一个可生成JSON响应的ASP.NET Web API端点。但是由于两个因素,无法直接从浏览器中使用。

  1. 跨域问题
  2. 需要提供仅服务器端已知的API的会话票证

因此,我需要用于客户端(浏览器)请求的轻量级服务器端代理,以使用会话密钥扩展请求。不想在代理代码中强加反序列化客户端JSON请求或Web API JSON响应的开销。希望按原样传递有效负载并反序列化客户端仅请求Web API端,而Web API仅响应客户端(浏览器)端。那就是代理从浏览器获取json并将其直接传递到Web API。还将JSON响应从Web API直接传递到浏览器,而无需反序列化。只是一个虚拟代理,它对传输的数据一无所知。请提出这是否可行以及实现它的最佳方法是什么。现有的Web应用程序(用于生成客户端页面的Web应用程序)是使用ASP.NET MVC 4实现的。

提前致谢。

mcintyre321

为以前的WebApi版本编写了一个出于您的目的,代码应该相当容易更新。

基本思想是创建一个将请求传递给HttpClient的WebApi DelegatingHandler:

    public class ForwardProxyMessageHandler : DelegatingHandler
    {
        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            request.Headers.Add("X-Forwarded-For", request.GetClientIp());
            if (request.Method == HttpMethod.Get || request.Method == HttpMethod.Trace) request.Content = null;
            request.RequestUri = new Uri(request.RequestUri.ToString().Replace(":3002", "")); //comes through with the port for the proxy, rewrite to port 80
            request.Headers.AcceptEncoding.Clear();
            var responseMessage = await new HttpClient().SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
            responseMessage.Headers.TransferEncodingChunked = null; //throws an error on calls to WebApi results
            if (request.Method == HttpMethod.Head) responseMessage.Content = null;
            return responseMessage;
        }

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC Web Api:服务器端的application / xml PUT请求主体为null

来自分类Dev

如何从服务器端(asp.net web api / mvc)向 xamarin 表单应用程序发送请求?

来自分类Dev

angular2 + web.api2:从服务器端(不是asp.net核心)注入防伪令牌

来自分类Dev

如何从asp.net-webpages中的Ajax请求在服务器端获取发布的文件?

来自分类Dev

向asp.net Web API服务器的角度发布请求

来自分类Dev

对asp.net Web API的POST请求达到某些限制时,服务器无响应

来自分类Dev

对asp.net Web API的POST请求达到某些限制时,服务器无响应

来自分类Dev

ASP.NET Web API 2分离Web客户端和Web服务器开发

来自分类Dev

ASP.NET MVC服务器端打印

来自分类Dev

ASP.NET图表在服务器端崩溃

来自分类Dev

ASP.NET Web Api SendAsync使服务器等待

来自分类Dev

Instagram API服务器端身份验证ASP.NET MVC

来自分类Dev

部署到测试服务器时,POST请求上的ASP.NET Web API“ 400错误请求”

来自分类Dev

从Angular 2到ASP.net Core的POST请求不起作用。服务器端为空值

来自分类Dev

ASP和ASP.Net支持哪些服务器端脚本语言

来自分类Dev

缓存Asp .Net Web API

来自分类Dev

ASP.NET服务器端或客户端的验证控件?

来自分类Dev

asp.net/javascript创建cookie,创建客户端或服务器端的优势?

来自分类Dev

ASP.Net MVC客户端和服务器端计算

来自分类Dev

如何使用asp.net访问服务器端的客户端文件

来自分类Dev

在asp.net Web服务器上安装字体

来自分类Dev

ASP.NET MVC从服务器端调用REST服务

来自分类Dev

限制由ASP.NET Web API服务的同时请求

来自分类Dev

ASP Net Web Api HttpPost 丢失请求

来自分类Dev

ASP.NET Web API服务

来自分类Dev

如何防止Syncfusion ASP.Net Webforms网格中的筛选器文本框发送服务器端请求?

来自分类Dev

从服务器端asp.net引发ajax调用中的错误

来自分类Dev

ASP.NET Core中的服务器端图形

来自分类Dev

Visual COBOL中的ASP.NET服务器端脚本

Related 相关文章

  1. 1

    ASP.NET MVC Web Api:服务器端的application / xml PUT请求主体为null

  2. 2

    如何从服务器端(asp.net web api / mvc)向 xamarin 表单应用程序发送请求?

  3. 3

    angular2 + web.api2:从服务器端(不是asp.net核心)注入防伪令牌

  4. 4

    如何从asp.net-webpages中的Ajax请求在服务器端获取发布的文件?

  5. 5

    向asp.net Web API服务器的角度发布请求

  6. 6

    对asp.net Web API的POST请求达到某些限制时,服务器无响应

  7. 7

    对asp.net Web API的POST请求达到某些限制时,服务器无响应

  8. 8

    ASP.NET Web API 2分离Web客户端和Web服务器开发

  9. 9

    ASP.NET MVC服务器端打印

  10. 10

    ASP.NET图表在服务器端崩溃

  11. 11

    ASP.NET Web Api SendAsync使服务器等待

  12. 12

    Instagram API服务器端身份验证ASP.NET MVC

  13. 13

    部署到测试服务器时,POST请求上的ASP.NET Web API“ 400错误请求”

  14. 14

    从Angular 2到ASP.net Core的POST请求不起作用。服务器端为空值

  15. 15

    ASP和ASP.Net支持哪些服务器端脚本语言

  16. 16

    缓存Asp .Net Web API

  17. 17

    ASP.NET服务器端或客户端的验证控件?

  18. 18

    asp.net/javascript创建cookie,创建客户端或服务器端的优势?

  19. 19

    ASP.Net MVC客户端和服务器端计算

  20. 20

    如何使用asp.net访问服务器端的客户端文件

  21. 21

    在asp.net Web服务器上安装字体

  22. 22

    ASP.NET MVC从服务器端调用REST服务

  23. 23

    限制由ASP.NET Web API服务的同时请求

  24. 24

    ASP Net Web Api HttpPost 丢失请求

  25. 25

    ASP.NET Web API服务

  26. 26

    如何防止Syncfusion ASP.Net Webforms网格中的筛选器文本框发送服务器端请求?

  27. 27

    从服务器端asp.net引发ajax调用中的错误

  28. 28

    ASP.NET Core中的服务器端图形

  29. 29

    Visual COBOL中的ASP.NET服务器端脚本

热门标签

归档