gvfs(gnome 虚拟文件系统)觉得有必要重新实现一些常用的文件系统。我试图让人们访问我们的 WebDAV 共享,但我遇到了相当神秘的错误。
我想要做的是设置 gvfs 来使用代理,这样我就可以使用 Charles 来查看发生了什么。
我怎样才能轻松地做到这一点?
翻转
答案1
我不知道 gvfs,也不知道它是否支持代理。但“强制”代理的简单方法是将 Charles 设置为反向代理,然后让您的 webdav 客户端连接到代理。
例如,假设 Charles 在“代理”主机上运行,而 webdav 在“webdav”主机上。设置 Charles 在端口 80 上执行反向代理,并将流量转发到 webdav:80(“反向代理”在菜单中可用)。然后,不要将客户端连接到“webdav”,而是让它们连接到http://代理/反而。
使用 WebDAV 进行反向代理时,有几个注意事项。您不仅需要重写 Host: 标头(Charles 会为您重写),还需要重写 Destination: 和 If: 标头。Destination: 用于复制或移动文件,而 If: 用于验证文件是否仍处于锁定状态。幸运的是,Charles 支持重写任何标头...查找 Tools > Rewrite,您可以在那里设置相当通用的重写规则。您需要做的是将这些标头中绝对 URL 的主机部分从“proxy”重写为“webdav”。(简单的 s/proxy/webdav/ 可用于测试)Julian Reschke 对 webdav 和反向代理的精彩总结如果你感兴趣的话可以关注 ;-)
(如果您可以让 gvfs 自己使用代理,那么您就可以避免标头重写的麻烦......但我无法让 Mac 上的 WebdavFS 使用代理,所以这对我很有用)。