创建代理来模拟具有自动响应功能的windows或web服务

本文关键字:功能 windows 服务 web 响应 代理 模拟 创建 | 更新日期: 2023-09-27 18:16:08

客户为我提供web API服务(例如:http://webservice:1234)。我的网站直接指向web API服务获取数据,…然而,为了测试的目的,我想建立一个代理(web或windows服务),我的网站将间接指向这个代理。代理允许创建许多条件,如果请求符合任何条件,代理将自己处理web请求,例如:返回一个示例web响应。否则,代理将指向web API服务获取数据并返回数据到我的网站(间接)。

请给我任何可用的源代码或工具或帮助我做到这一点。谢谢。

创建代理来模拟具有自动响应功能的windows或web服务

这有点宽泛,但这是要点。

我可能只做一个web应用程序项目。如果需要,您可以使用OWIN将其作为命令行运行,但随后您可以让ASP处理请求解析和所有这些。您也可以使用HTTPListener,但我现在并没有真正看到其中的价值。

一旦你设置好了,你的ASP项目可以包含HTTP处理程序,或者只是通过在OWIN上编写中间件。在您的函数中,无论您选择哪一个,您都希望读取请求,选择您希望如何响应(综合地或通过将其转发到API),然后执行此操作。如果你想在本地响应,那很容易。做你平时会做的事。否则,您可以将HttpWebRequest发送到实际所需的API,然后返回值。

这是最干净、最简单的方法,但是您应该意识到这种方法存在一些问题。例如,SSL不能很好地通过它工作。为了获得真正代理的所有功能,您需要设置一个TCP Socket,它可以监听、手动解析并根据需要进行响应。在这些方法之间的选择主要取决于你需要多少控制,而不是你想做多少工作。

长话短说,代理的思想显然是接受请求并相应地转发它。所以你可以使用任何你选择的框架。

你也可以尝试使用Fiddler。我认识到编写自己的专有版本的愿望和好处,它更自定义,但是如果Fiddler能够完成您需要的所有功能,那么它当然更容易。我从未真正使用过这些功能,但我知道它有一些功能可以让您自动拦截和响应请求。FiddlerCore也会工作(它的文档很容易通过该链接访问),我实际上已经使用了很多在过去的几天里,尽管在一个有点不同的情况。实际上,它可能比套接字或HTTP侦听器方法更好。但这完全取决于你想要完成什么。从您所说的声音来看,Fiddler应用程序将是您的最佳选择。然后你甚至不需要写任何东西,这可能是一件好事。最后两种方法的唯一真正问题是,如果你打算将其作为产品发行,你将不得不担心授权问题。"担心"可能不会产生任何合理的担忧,但你至少要考虑一下。但如果是为了测试,那应该没问题。