gpt4 book ai didi

Android Emulator CONNECT 隧道缺少预期的 header

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:05 25 4
gpt4 key购买 nike

我正在编写一个针对 RESTful api 的 phonegap 应用程序。出于调试目的,我想看看我的 POST 和 GET 是什么样子的。 google 上的所有信息都说要使用 fiddler 代理。我安装了 fiddler 并开始工作,设置我的 android 模拟器来使用它,但是每当我开始查询 restful 服务时,数据包都会以某种方式被破坏(或者至少是它的授权部分)。

如果我没有代理,下面的 JS 代码在我的 android 模拟器中工作正常:

$.post("https://blah.hi.com/homepage/security_check",
$("#loginForm").serialize(), function (data, textStatus, jqXHR) {...

但是当我使用 fiddler 来分析我的 android 应用发出的请求时,我收到以下错误:

enter image description here

据我通过检查 fiddler 中的初始请求可以看出,进行了以下更改:

用户代理、连接和主机 header 被剥离。我尝试使用 Fiddler 规则手动添加它们,但这没有用。

这是一个很好的比较:

enter image description here

此外,当我查看请求的 TextView 选项卡时,Extensions 下的以下标题被删除(以下是使用 Chrome 并通过 fiddler 和工作时请求的外观图片):

enter image description here

现在这里是通过 eclipse android 模拟器,通过 fiddler 失败: enter image description here

我考虑过使用 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 模拟器(同样失败)时的一些调试信息。 enter image description here

最佳答案

这很可能是针对旧版 Android SDK/模拟器报告的问题:

Issue 12356: lost header on https connection via proxy

还值得检查相关问题中缺少的标题讨论:

Issue 3334: SSL web sites fail to load in browser application when not connected via Wi-Fi

根据 this post ,这个问题好像只存在于Android 3.x及以下版本:

this problem is ONLY occuring on Android 3.x and lower versions. iOS is fine. All major desktop browsers are fine. Android 4.x is fine.

尝试使用 Android 4.x 模拟器,看看是否可行。

更新:

在某些情况下,这可能是一个配置挑战,而不是一个不清楚的错误。查看Setting up a persistent trusted CA in an Android emulator :

Setting up a persistent trusted CA in the Android emulator is a common problem, encountered any time we assess an application within an emulator, that use SSL properly. The goal is to man-in-the-middle (MITM) traffic from an application running in the Android emulator.

In order to successfully MITM traffic, the Certificate Authority (CA) of the middle node must be trusted by the device, otherwise the connection will fail with some generic SSL Handshake error. Typically, the middle node can be flagged as trusted on a rooted phone by modifying the cacerts file, and rebooting the device. When attempting to do this in the Android emulator, rebooting the virtual device causes the OS to revert many system files back to their base state – including the cacerts file. The rest of this post describes how to set up an emulator that will retain modifications to the core system files after reboots. This has not been documented in one place (to my knowledge), so hopefully this will save time for those facing this problem.

... ...

关于Android Emulator CONNECT 隧道缺少预期的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14653484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com