1

我正在尝试调试一些非常挑剔/复杂的网络服务的问题,其中一些理论上发出相同请求的客户端得到不同的结果。像 Charles 这样的调试代理有很大帮助,但由于请求很复杂(大量的标头、cookie、查询字符串、表单数据等),并且客户端以不同的顺序创建标头(这应该是完全可以接受的)等等。这是一个手动完成非常繁琐的过程。

我正在考虑自己写一些东西来做这件事,但我希望其他人已经解决了这个问题?

顺便说一句,有没有人知道任何完全开源的类似 Charles 的调试代理?如果 Charles 是开源的,我肯定会将我在这方面所做的任何工作贡献给项目。如果那里有类似的东西,我宁愿这样做而不是从头开始编写一个单独的程序(特别是因为我认为 Charles 或任何类似物已经拥有我可能需要的所有数据结构等)。

编辑:为了清楚起见——文本差异将不起作用,因为行的顺序(例如,至少标题)可能不同和/或行内的值顺序(例如,至少 cookie)可能不同,并且在这两种情况下都是只要名称、值和元数据都相同,不同的排序不应导致其他方面相同的请求被视为不同。

4

3 回答 3

1

如果您的路径中有 WinDiff,Fiddler就有这样的选择。我不知道它是否适合您的需求,因为乍一看它只是在进行文本比较。但也许它使之前的会议正常化,所以我不能说。

于 2008-12-20T13:05:29.657 回答
0

如果没有为该作业构建任何目的,您可以使用数据包捕获将消息内容保存到文本文件(将自身插入 IP 堆栈的文件,如 CommView)。您可以通过文本区分不同消息的结果。

于 2008-12-20T06:41:33.037 回答
0

开源代理Squid可以提供帮助吗?

于 2008-12-20T12:51:11.123 回答