【发布时间】:2013-02-01 19:19:24
【问题描述】:
我正在编写一个针对 RESTful api 的 phonegap 应用程序。出于调试目的,我想看看我的 POST 和 GET 是什么样的。谷歌上的所有信息都说使用提琴手代理。我安装了 fiddler 并开始工作,设置我的 android 模拟器以使用它,但是每当我开始查询 restful 服务时,数据包就会以某种方式被破坏(或者至少是它的授权部分)。
如果我没有代理,以下 JS 代码在我的 android 模拟器中可以正常工作:
$.post("https://blah.hi.com/homepage/security_check",
$("#loginForm").serialize(), function (data, textStatus, jqXHR) {...
但是当我让 fiddler 运行时,我可以分析我的 android 应用程序发出的请求,我收到以下错误:
据我在 fiddler 中检查初始请求可以看出,进行了以下更改:
User-Agent、Connection 和 Host 标头被剥离。我尝试使用 Fiddler 规则手动添加它们,但没有奏效。
这是一个很好的比较:
另外,当我查看请求的 TextView 选项卡时,Extensions 下的以下标题被剥离(以下是使用 Chrome 时请求的样子,并通过 fiddler,并且有效):
现在是通过 eclipse android 模拟器,通过 fiddler 并失败时:
我考虑过使用 WireShark,但是所有的通信都是通过 https 完成的,并且更喜欢使用 fiddler。
任何建议将不胜感激!另外,我通过使用以下参数 -http-proxy 127.0.0.1:8888 从这里 http://vkosinets.com/blog/2011/08/16/debug-http-requests-from-android-emulator 访问代理。
编辑:这是使用 Android 4.X 模拟器时的一些调试信息(也失败了)。
【问题讨论】:
-
您显示的屏幕截图是 From Fiddler,所以不清楚为什么您认为“剥离”了任何内容?在配置手机时,我猜您使用了 IPTables破解请求去代理?你可能应该看看这个:groups.google.com/forum/?fromgroups#!searchin/httpfiddler/…
-
@EricLaw 更新显示更直接的比较并且不期望用户推断任何内容,而且您的链接似乎对我不起作用。
-
看来 SO 破坏了链接。有趣的。你可以直接去groups.google.com/group/httpfiddler搜索“主题名称替换为IP地址”找到主题。
-
空的“扩展”列表是因为客户端没有在 CONNECT 隧道请求上发送任何 TLS 扩展。 HOST 丢失可能是由于客户端中的错误(请参阅下面的答案)。
-
如果您尚未将 Android 配置为信任 Fiddler 的证书,那么我绝对希望您在 CONNECT 隧道之后不会看到任何流量。
标签: android eclipse rest cordova fiddler