【问题标题】:Proxy which requires authentication with Android Emulator需要使用 Android 模拟器进行身份验证的代理
【发布时间】:2010-09-06 21:39:06
【问题描述】:

有没有人设法让 Android 模拟器在需要身份验证的代理后面工作?

我尝试将 -http-proxy 参数设置为

http://DOMAIN/USERNAME:PASSWORD@IP:PORT

但我没有成功。

我已尝试按照文档进行操作,但无济于事。我也尝试了-verbose-proxy 设置,但这似乎不再存在。

任何指针?

【问题讨论】:

标签: android authentication proxy android-emulator


【解决方案1】:

我设法在 Adndroid 2.2 模拟器中做到了。

Go to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Access Point Names" -> "Telkila"

在“代理”属性中设置代理主机名 和属性“端口”中的代理端口

【讨论】:

  • 如果输入您的用户名,请记住包含域名 [ domain\username] 否则您会收到代理身份验证弹出窗口。
  • 这些代理设置适用于 Android 中的浏览器 - 但不适用于应用程序。有没有人遇到过类似的问题?
  • @AbhimanyuGrover 是的,我也有同样的问题,你已经解决了吗?
  • 有什么方法可以让我们以编程方式将代理设置用于我们的应用程序?
  • 实际IP地址有效,代理服务器名称无效。
【解决方案2】:

似乎从 SDK 1.5 开始,-http-proxy 标志也不起作用。对我有用的是在模拟器中启动 android 映像,然后一旦 Android 运行,转到 Home > Menu > Settings > Wireless Controls > Mobile Networks > Access Point Names,然后为默认访问点设置 http 代理设置。

有了 APN 代理设置,我可以让模拟器的浏览器上网。但是,地图之类的其他东西仍然无法使用。

【讨论】:

    【解决方案3】:

    我记得有同样的问题 - 在网上搜索后,我找到了这个解决方案 - 从命令行,

    1. > adb shell
    2. # sqlite3 /data/data/com.android.providers.settings/databases/settings.db
    3. sqlite> INSERT INTO system VALUES(99,’http_proxy', 'proxy:port');
    4. sqlite>.exit
    

    编辑: 修改答案以反映最新版本的 Android。

    【讨论】:

    • 在sdk 2.1中应该是:sqlite3 /data/data/com.android.providers.settings/databases/settings.db
    • 我正在使用 2.3,它显示错误:错误:无法打开数据库“/data/data/com.google.android.providers.settings/databases/settings.db”:无法打开数据库文件
    • 错误已解决:在 2.3 中,它应该是 sqlite3 /data/data/com.android.providers.settings/databases/settings.db,正如 Lily 上面所说的。
    • 我有错误:“没有这样的表:系统”。当我转到 sqlite3 和这个位置并输入“.tables”时,我有空数据库。当我输入“.databases”时,我可以看到“main”。我使用安卓模拟器、nexus4、api23。请帮忙。
    【解决方案4】:

    显然,此问题仅适用于 Android 2.x 和 Windows。 这里有一个打开的错误: http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

    【讨论】:

      【解决方案5】:
      1. C:\Documents and Settings\YOUR USER NAME\.android\找到文件androidtool.cfg

      2. 添加这一行:

        http.proxyLogin=USER@PASSWORD
        
      3. 保存文件并尝试打开 Android SDK。

      【讨论】:

      • 我收到 407 代理身份验证错误...仍然无法正常工作... :(
      • 407 表示您的代理需要使用用户名和密码进行身份验证
      【解决方案6】:

      为了设置代理服务器,我们需要设置 APNS 设置。为此:

      • 进入设置
      • 转到无线和网络
      • 转到移动网络
      • 转到接入点名称。使用菜单添加新的 apns
      • 设置代理=本地主机
      • 设置端口 = 用于制作代理服务器的端口,在我的例子中是 8989

      这里是设置名称和apn的链接:

      根据你的sim卡你可以看到桌子

      【讨论】:

        【解决方案7】:

        这对我有用:http://code.google.com/p/android/issues/detail?id=5508#c39
        显然模拟器中有一个错误,迫使您使用代理的 IP 地址而不是名称...

        【讨论】:

          【解决方案8】:

          Jay,虽然这将是此信息的理想位置,但它尚未针对 2.1 进行更新。下面我将列出目前不适用于 2.1 模拟器的方法。

          http-post 参数不适用于 2.1 模拟器。 在 2.1 模拟器中的 APN 列表中设置代理不起作用。 通过 sql-lite 将代理直接插入到系统表中不适用于 2.1。

          事实上,让浏览器通过我在 2.1 中找到的模拟器连接到互联网的唯一方法是根本不使用代理。我真的希望这个问题能尽快得到解决,因为有很多人遇到同样的问题。

          【讨论】:

            【解决方案9】:
            1. 启动命令提示符。

            2. 转到模拟器所在的文件夹。一般来说,它会在 Android SDK 的 tools 文件夹中。

            3. 然后使用以下命令:

              emulator -avd <avd name> -http-proxy <server>:<proxy>
              

              通过使用它,我们将能够使用浏览器访问互联网。

            【讨论】:

              【解决方案10】:

              在 Eclipse 3.45 中使用带有代理的 Android SDK 1.5 模拟器

              转到包资源管理器->右键单击您的Android项目->运行方式->运行配置。

              在左侧栏的 Android Application 下,选择您的项目 -> 在右侧栏,您会看到 Android |目标 |常用标签 ->

              选择Target -> 在底部的“Additional Emulator Command Line Options”->

              -http-proxy http://www.gateProxy.com:1080 -debug-proxy http://www.gateProxy.com:1080

              ->运行/关闭。

              【讨论】:

                【解决方案11】:

                我没有使用过 Android Emulator,但我已经为 perl 和 wget 以及 Windows 上的一些 cygwin 工具设置了 $http_proxy 环境变量。这可能对您适用于 android,但域名中的斜线似乎是一个潜在的问题。 我知道我尝试将我的域“GLOBAL”放在那里,但最终将其取出并坚持使用:http://$USER:password@www-proxy.company.com:80

                我经常遇到的一个问题是不能告诉程序也使用代理进行 DNS 查询。在他们没有的情况下,我总是找不到主机名。我想找到一个本地 dns 解析器,它可以为所有不会使用代理的程序使用代理。

                【讨论】:

                  【解决方案12】:

                  我能够使用 HTTP 嗅探器而不是代理来查看流量。我使用了HTTPScoop,这是一个不错的小应用程序。

                  使用 HTTPScoop 的另一个好处是,当我打开互联网共享并让我的手机使用我的 mac 上的 wifi 时,我还可以看到我实际设备上的流量。所以这对于调试手机本身和模拟器上发生的事情来说是一个很好的选择。

                  这样,你使用什么模拟器都没有关系,因为嗅探器会看到独立于模拟器、设备、编译器设置等的流量。

                  【讨论】:

                    【解决方案13】:

                    我将解释所有步骤:

                    1. 进入 Android 模拟器中的设置 > 无线和网络 > 移动网络 > 接入点 > Telkilla > 在此处进行必要的设置,例如代理、端口等。

                    我想现在关于代理设置的一切都清楚了......

                    【讨论】:

                      【解决方案14】:

                      适用于Android2.3.3 设置->无线和网络->移动网络->AccessPointNames->Telkila-> 在此处设置代理和端口(xx.xx.xx.xx 和端口)

                      【讨论】:

                        【解决方案15】:

                        当我使用以下命令时,我遇到了同样的问题:

                        emulator-x86.exe -http-proxy domain\user:password@proxyIP:port -avd MyAVD
                        

                        我收到代理身份验证错误。

                        最后,我不得不在这里使用 Cntlm 绕过代理 NTLM 身份验证:

                        http://sourceforge.net/projects/cntlm/

                        然后在简单地配置完cntlm.ini之后,我改用以下命令:

                        emulator-x86.exe -http-proxy 127.0.0.1:3128 -avd MyAVD
                        

                        它有效:)

                        【讨论】:

                        • 密码有@怎么办?
                        【解决方案16】:

                        有了新版本的 Android Studio 和它的模拟器,这是一件容易的事。

                        按下模拟器的“更多”按钮,选择设置 -> 代理选项卡。所有需要的配置都在那里。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2021-10-10
                          • 1970-01-01
                          • 2017-07-02
                          • 2012-04-07
                          • 1970-01-01
                          相关资源
                          最近更新 更多