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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

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

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

谁能有一些解释或信息可以让我继续这个小项目吗?

步骤1我将客户端(浏览器)配置为将所有请求发送到代理侦听端口的127.0.0.1。这样,请求将不会直接发送到互联网,而是将由代理处理。

步骤2代理会看到一个新的连接,读取HTTP头并看到他必须执行的请求。他执行请求。

步骤3代理接收来自请求的答复。现在他必须把答案从网络发送给客户,但如何发送?

提问于
用户回答回答于

可以使用类来侦听传入的请求和类来转发请求。

用户回答回答于

使用HttpListener或诸如此类的东西,会遇到很多问题。

最重要的是,这将是一个巨大的痛苦支持:

  • 代理存留
  • SSL将无法工作(以正确的方式,将得到弹出窗口)
  • NET库严格遵循RFCS,这会导致一些请求失败(即使IE、FF和世界上任何其他浏览器都能工作)。

你需要做的是:

  • 侦听TCP端口
  • 解析浏览器请求
  • 提取主机连接到TCP级别的主机
  • 来回转发所有内容,除非您想要添加自定义标题等。

扫码关注云+社区