Evert Asked: 2009-05-02 10:24:33 +0800 CST2009-05-02 10:24:33 +0800 CST 2009-05-02 10:24:33 +0800 CST 使用 gvfs 调试 WebDAV 772 gvfs(gnome 虚拟文件系统)觉得有必要重新实现一些常见的文件系统。我试图让人们加入我们的 WebDAV 共享,但我遇到了非常神秘的错误。 我想做的是设置 gvfs 以使用代理,这样我就可以使用 Charles 来查看发生了什么。 我怎样才能轻松做到这一点? 翻转 http gnome webdav debugging 1 个回答 Voted Best Answer Peter Štibraný 2009-05-14T09:57:24+08:002009-05-14T09:57:24+08:00 我不知道 gvfs,也不知道它是否支持代理。但“强制”代理的简单方法是将 Charles 设置为反向代理,并让您的 webdav 客户端连接到代理。 例如,假设 Charles 在“代理”主机上运行,而 webdav 在“webdav”主机上。设置 Charles 在端口 80 上进行反向代理并将流量转发到 webdav:80(“反向代理”在菜单中可用)。然后,不要将您的客户端连接到“webdav”,而是让他们连接到http://proxy/。 使用 WebDAV 进行反向代理时几乎没有注意事项。您不仅需要重写 Host: 标头(Charles 为您做的),还需要重写 Destination: 和 If: 标头。Destination: 用于复制或移动文件,而 If: 用于验证文件是否仍处于锁定状态。幸运的是,Charles 支持重写任何标题...查找工具 > 重写,您可以在其中设置非常通用的重写规则。您需要做的是将这些标头中绝对 URL 的主机部分从“代理”重写为“webdav”。(简单的 s/proxy/webdav/ 将用于测试)如果您有兴趣,Julian Reschke 有关于 webdav 和反向代理问题的精彩总结;-) (如果你可以让 gvfs 自己使用代理,那么你可以避免头文件重写的麻烦......但我无法在 Mac 上让 WebdavFS 使用代理,所以这对我很有用)。
我不知道 gvfs,也不知道它是否支持代理。但“强制”代理的简单方法是将 Charles 设置为反向代理,并让您的 webdav 客户端连接到代理。
例如,假设 Charles 在“代理”主机上运行,而 webdav 在“webdav”主机上。设置 Charles 在端口 80 上进行反向代理并将流量转发到 webdav:80(“反向代理”在菜单中可用)。然后,不要将您的客户端连接到“webdav”,而是让他们连接到http://proxy/。
使用 WebDAV 进行反向代理时几乎没有注意事项。您不仅需要重写 Host: 标头(Charles 为您做的),还需要重写 Destination: 和 If: 标头。Destination: 用于复制或移动文件,而 If: 用于验证文件是否仍处于锁定状态。幸运的是,Charles 支持重写任何标题...查找工具 > 重写,您可以在其中设置非常通用的重写规则。您需要做的是将这些标头中绝对 URL 的主机部分从“代理”重写为“webdav”。(简单的 s/proxy/webdav/ 将用于测试)如果您有兴趣,Julian Reschke 有关于 webdav 和反向代理问题的精彩总结;-)
(如果你可以让 gvfs 自己使用代理,那么你可以避免头文件重写的麻烦......但我无法在 Mac 上让 WebdavFS 使用代理,所以这对我很有用)。