我正在尝试调试一些非常挑剔/复杂的网络服务的问题,其中一些理论上发出相同请求的客户端得到不同的结果。像 Charles 这样的调试代理有很大帮助,但由于请求很复杂(大量的标头、cookie、查询字符串、表单数据等),并且客户端以不同的顺序创建标头(这应该是完全可以接受的)等等。这是一个手动完成非常繁琐的过程。
我正在考虑自己写一些东西来做这件事,但我希望其他人已经解决了这个问题?
顺便说一句,有没有人知道任何完全开源的类似 Charles 的调试代理?如果 Charles 是开源的,我肯定会将我在这方面所做的任何工作贡献给项目。如果那里有类似的东西,我宁愿这样做而不是从头开始编写一个单独的程序(特别是因为我认为 Charles 或任何类似物已经拥有我可能需要的所有数据结构等)。
编辑:为了清楚起见——文本差异将不起作用,因为行的顺序(例如,至少标题)可能不同和/或行内的值顺序(例如,至少 cookie)可能不同,并且在这两种情况下都是只要名称、值和元数据都相同,不同的排序不应导致其他方面相同的请求被视为不同。