C# 如何捕获URL或HTTP请求并使用C重定向它#

C# 如何捕获URL或HTTP请求并使用C重定向它#,c#,http,proxy,httpwebrequest,C#,Http,Proxy,Httpwebrequest,大家好,谢谢阅读 对于QA,我想设置一个应用程序,该应用程序可以处理和管理通过internet从特定运行的应用程序发送的请求和数据 更具体地说,我希望能够重定向几个URL,而不是每个URL,通过“代理应用程序”工作,因此,如果我有一个请求和的应用程序,我只希望重定向指向相对路径/搜索的第二个URL 我希望你能明白。 你们有什么简单实现的想法吗?也许有一个现有的框架来实现?如果你能给我一些代码和一个例子,我将不胜感激 提前谢谢 更新:事实上,我需要构建一个应用程序,该应用程序可以以某种方式“连接”

大家好,谢谢阅读

对于QA,我想设置一个应用程序,该应用程序可以处理和管理通过internet从特定运行的应用程序发送的请求和数据

更具体地说,我希望能够重定向几个URL,而不是每个URL,通过“代理应用程序”工作,因此,如果我有一个请求和的应用程序,我只希望重定向指向相对路径/搜索的第二个URL

我希望你能明白。 你们有什么简单实现的想法吗?也许有一个现有的框架来实现?如果你能给我一些代码和一个例子,我将不胜感激

提前谢谢


更新:事实上,我需要构建一个应用程序,该应用程序可以以某种方式“连接”到并劫持已开发的应用程序和数据服务器之间的现有连接,以便它可以侦听和修改通过此连接发送的数据。我知道用像c这样的高级语言很难做到,但我只是想确定我是否正确地理解了你。。。是否要将某些URL重定向到“代理应用程序”???不是代理服务器

如果要重定向到代理服务器,则可以执行以下操作:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/search/");
request.proxy = new WebProxy("http://proxyurl");
HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();
或者不使用代理服务器:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();
您可以让“代理应用程序”为url提供服务,但情况完全不同。在这种情况下,您将需要应用程序和其他应用程序之间的某种通信方法。您的应用程序可以通过TCP或连接到其他应用程序。您将URL发送到另一个应用程序并由它提供服务

然后是另一个问题:代理应用程序是将页面返回到您的请求处理应用程序,还是将页面提供给客户端?那么,客户机如何与您的请求处理应用程序通信呢

更新 听起来你在寻找这样的东西:

Fiddler使您能够检查所有HTTP流量、设置断点以及“摆弄”传入或传出数据。Fiddler比NetMon或其他网络调试器更易于使用,因为它只公开HTTP流量,并且以用户友好的格式进行


一般来说,您可能需要查看。

因此,当您访问www.google.com/search时,您希望使用代理,但当您仅访问www.google.com/时,您不希望使用代理。您能否澄清这个问题,请尝试一下。事实上,我需要构建一个应用程序,该应用程序可以以某种方式“连接”到并劫持已经开发的应用程序和数据服务器之间的现有连接,以便它可以侦听和修改通过该连接发送的数据。我知道用c这样的高级语言很难做到,但我只是想确定一下。@Denis:)。。。听起来你可能在找像Fiddler这样的东西。。。我已经为你更新了答案。它看起来正是我需要的。只需要稍微玩玩一下,阅读一下它的文档。非常感谢你为帮助我所做的一切努力,即使是在不清楚的问题上。谢谢