C#拦截Http请求

时间:2016-10-19 10:41:17

标签: c# .net http

我有一个.Net应用程序(控制台或web),我需要创建一个Helper类,其中包含一个C#中的事件以自动触发并在我调用一个restful服务时记录请求和响应(在我的应用程序中不是外部应用程序) 我更喜欢使用本机框架而不是库。这可能吗?

3 个答案:

答案 0 :(得分:0)

您可以创建自己的事件,并在对服务的方法调用上触发它。是的,这是可能的。您必须创建一个服务调用者和您自己的事件。在来自服务调用者的每个方法上,触发事件。我不会在how to create an event上添加代码或示例。你应该自己做研究。

答案 1 :(得分:0)

如果您无法控制应用程序和服务,则可以在C#中设置代理服务器并通过它路由其他应用程序流量(使用该应用程序或全局windows / linux / wtw设置)。在C#中,可以使用HttpListener(用于监听)和HttpWebRequest来转发请求。全功能代理服务器的示例:Titanium Web Proxy

如果您可以控制其中任何一个,可以使用类似this的内容。

答案 2 :(得分:0)

您可以创建一个中间件来拦截HTTP处理。我知道在ASP.NET Core中应该相当简单,而我只是在.NET中找到了类似的东西。

https://www.azurefromthetrenches.com/capturing-and-tracing-all-http-requests-in-c-and-net/

在上面的链接中,您将找到如何侦听.NET中的事件。您可以测试事件类型,如果它们是所需类型,则可以进行自定义处理,捕获,跟踪等。

这个问题已有3年历史了,所以它可能对您没有帮助,但像我一样落在这里的其他人。另外,如果您可以分享对您有用的内容,那也很好。