Android:从仿真器访问localhost时,“错误的请求-无效的主机名”

Pri*_*wal 5 android localhost android-emulator

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

这是模拟器执行的项目

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

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

Nic*_*sky 9

打开您的解决方案文件夹。您可能在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>
Run Code Online (Sandbox Code Playgroud)

设置适当的端口号和协议,这里重要的是将它们映射到127.0.0.1,而不是“ localhost”,然后它们将通过10.0.2.2:60424

  • 我花了 5 个小时才找到这个答案。谢谢你! (2认同)
  • 进一步的建议是添加另一个“绑定”,而不是替换现有的“绑定” (2认同)

Arv*_*iya 0

我已经在另一个 stackoverflow 问题上使用第三方软件回答了这个问题ngrock

检查此Android 模拟器未连接到 localhost api