如何在C#中创建一个简单的代理?

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我已经在几周前下载了Privoxy,为了好玩,我很想知道它的简单版本是如何完成的。

我知道我需要配置浏览器(客户端)向代理发送请求。代理将请求发送给Web(假设它是一个http代理)。代理将收到答案...但代理如何将请求发送回浏览器(客户端)?

我在网上搜索了C#和http代理,但没有找到让我了解它在场景后面如何正确工作的内容。(我不想要反向代理)。

袁弋雯袁弋雯提问于
大力发达回答于
已采纳
人生的旅途辣鸡前端回答于

我不会使用HttpListener或类似的东西,这样你会遇到很多问题。

很难支持以下几条:

  • 代理保持活动
  • SSL不起作用(以正确的方式,你会得到弹出窗口)
  • .NET库严格遵循RFC,导致一些请求失败(即使IE,FF和世界上任何其他浏览器都能正常工作)。

需要做的是:

  • 听一个TCP端口
  • 解析浏览器请求
  • 解压主机在TCP级别连接到该主机
  • 一切来回,除非你想添加自定义标题等。

我用.NET编写了2个不同的HTTP代理,它们有不同的要求,我可以告诉你这是最好的方法。

扫码关注云+社区