Android模拟器无法连接本地主机API

8

我有一个使用Xamarin制作的应用和一个本地API。我试图从应用中连接到API,但是API无法找到。我编辑了applicationhost.config文件,并尝试在调用中使用localhost10.0.2.2和我的IP地址,但都没有起作用。

那么,如何配置简单的API访问?(API本身运行正常)


使用IP地址进行测试,使用设备/模拟器上的浏览器排除连接问题。还要检查防火墙设置。 - Jason
谢谢您的回复。好的,但我在模拟器中使用我的IP进行了测试,但还没有找到。我应该检查什么防火墙?我不知道该怎么做。 - Dönci Fekete
2个回答

17

连接EmulatorSimulatorlocalhost API的简单解决方法是通过第三方软件NgRok。

在PC上的任何特定位置下载Windows版NgRok,它只包含一个名为ngrok.exe的可执行文件(无需安装)。

现在在首选浏览器中执行您的服务。然后按照以下步骤操作:

  • 在命令提示符中打开ngrok.exe文件路径

enter image description here

  • 将您的服务url(从浏览器获取)与前缀ngrok http --host-header=rewrite保持一致并按回车键。

enter image description here

  • 现在转到您已经执行服务的浏览器,在新标签页中输入localhost:4040然后回车--> 转到status,您将找到可用于移动应用程序的公共URL。

enter image description here

注意:URL结构应该像这样:public const string BaseUri = "https://8c56892f.ngrok.io/";,最后加上/。尽量不要添加不必要的/
好处:
  1. 您可以从一个Visual Studio调试服务到另一个。
  2. 只要不关闭命令提示符窗口,您的URL就可以保持活动状态。
  3. 在浏览器或命令提示符中跟踪请求的状态,例如OkNot found等。
有关更多信息,请访问https://www.c-sharpcorner.com/article/exposing-local-web-server-to-internet-using-ngrok/
希望它能对您有所帮助。

3
哦,太棒了!是的,它正在工作!非常感谢!(我从未见过这样的东西) - Dönci Fekete
即使这对我在Flutter Android和.NET服务器上也没有帮助。 - neena
@neena 我按照所有步骤操作了一遍,现在Flutter可以使用IIS Express(API是在.NET Core中开发的)。 - Paul Pérez
不错的工具 - 只需记住免费版本仅允许每个会话2小时,并且它们生成的URL每次都会更改,这相当烦人。 - Savage

1

那个10.0.2.2地址用于Google模拟器。对于Microsoft模拟器,您需要使用169.254.80.80。如果这不起作用,则必须意味着您已经开启了防火墙并且它正在阻止流量。可以通过为程序或端口添加新的传入规则来解决此问题。


是的,没错!我正在调试它。我的 Android 模拟器使用 10.0.2.2 地址。但是,如何为程序或端口添加新的入站规则呢? - Dönci Fekete
@DönciFekete 打开你的本地服务器(WAMP,XAMP),打开模拟器,在模拟器中的Chrome浏览器或任何浏览器中输入169.254.80.80并检查wamp / xamp页面是否显示。如果没有显示,请告诉错误代码显示了什么。 - Rizwan Ahmed Shivalli
如果您正在使用最新的WAMP服务器,则请按照此链接中的步骤进行操作:https://www.betterhostreview.com/access-wamp-server-local-network.html - Rizwan Ahmed Shivalli
我使用RESTful Web服务,就像这个例子中所示:https://developer.xamarin.com/samples/xamarin-forms/WebServices/TodoREST/。因此,我不遵循您的指示。您有什么建议吗? - Dönci Fekete
如果您正在使用本地服务器执行添加、删除、编辑等操作,则请按照上述步骤进行操作。如果您正在使用在线服务器,则请检查您是否已向应用程序授予Internet权限。 - Rizwan Ahmed Shivalli
正是我所需要的,我想知道为什么谷歌不直接使用127.0.0.1? - Tyler Petrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接