【问题标题】:Android: "Bad Request-Invalid Hostname" When accessing localhost from emulatorsAndroid:从模拟器访问 localhost 时出现“Bad Request-Invalid Hostname”
【发布时间】:2018-08-22 13:15:18
【问题描述】:

我无法将 localhost 与 xamarin.android 应用程序一起使用。 我已经在 Chrome 浏览器上执行了 Web 项目和服务项目(不是移动应用程序)。

我尝试通过分别附加 10.0.2.2: 和 10.0.3.2: 在 Android Studio 模拟器和 Genymotion 模拟器中浏览显示的端口号,我得到了结果 Bad Request-Invalid Hostname。即使我尝试过服务项目端口号,都无法正常工作。

Web 项目:使用 Visual Studio 2017 的 ASP.NET 项目并在同一解决方案中拥有服务项目。

【问题讨论】:

  • 你做了什么?你删除了我试图帮助你几个小时的其他帖子,然后再次发布了你措辞不好的帖子。当你也扔掉我的工作时,你不应该那样做。然后我们还没有准备好。真可怕。
  • 前面的 cmets 自动转到聊天部分。
  • 那么抱歉指责你。对不起。尝试撤消它,因为这也没有什么好玩的。
  • 您的绑定在 IIS 中是什么样的?
  • 看起来答案就在这里:stackoverflow.com/a/15809698/7149454

标签: android android-emulator localhost


【解决方案1】:

打开您的解决方案文件夹。您可能在 1 个文件夹中有多个项目,您不需要项目的文件夹,但需要根文件夹。在里面你会有.vs/config/applicationhost.config 文件,打开它。

在里面找到<sites>,如果您在一个解决方案中切换启动项目,您将拥有正在运行的站点,可能有多个站点。当您右键单击它的图标时,该名称将与 IIS 在任务栏中显示的名称相对应。例如,标签可以是<site name="ServerApp" id="2">。 现在你需要添加一行来绑定外部连接到你的机器ip,例如

      <site name="ServerApp" id="2">
...
        <bindings>
...
          <binding protocol="http" bindingInformation="*:60424:127.0.0.1" />
        </bindings>
      </site>

设置适当的端口号和协议,这里重要的是将它们映射到127.0.0.1,而不是“localhost”,然后它们将通过10.0.2.2:60424 用于android 模拟器(端口号60424 只是来自上面的示例,使用你的)

【讨论】:

  • 我花了 5 个小时才得到这个答案。谢谢!
  • 你,我的朋友,是救命稻草。我同意@mr5。
  • 进一步的建议是添加另一个binding 而不是替换现有的
【解决方案2】:

我已经通过第三方软件解决了这个问题ngrock

查看Android emulator not connecting to localhost api

【讨论】:

    【解决方案3】:

    您可以使用我们的免费扩展 Conveyor https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

    如果 Conveyor 给你的 IP 不起作用,只需将其替换为 10.0.2.2。使用 Conveyor 解决了需要让 IIS Express 绑定到其他主机名的问题。它还具有其他一些功能。

    【讨论】:

    • 非常感谢。您可以节省五月天
    猜你喜欢
    • 2012-09-07
    • 1970-01-01
    • 2018-10-27
    • 2013-12-13
    • 2013-02-16
    • 2018-05-18
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多