我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
当前回答
我解决了服务层使用Visual Studio IIS Express时的问题。只是指向10.0.2.2:端口不会工作。我没有像其他文章中提到的那样把IIS Express搞得一团糟,而是在IIS Express前面放了一个代理。例如apache或nginx。nginx.conf看起来像
# Mobile API
server {
listen 8090;
server_name default_server;
location / {
proxy_pass http://localhost:54722;
}
}
然后android需要指向我的IP地址为192.168.x.x:8090
其他回答
你需要设置URL为10.0.2.2:portNr
portNr = ASP给出的端口。我当前的服务在localhost上运行:3229/ service .svc
我的url是10.0.2.2:3229
我用这种方法解决了我的问题
我希望它能有所帮助……
Localhost在启动时似乎在我的模拟器中工作得很好,然后我开始得到连接拒绝异常 我使用了127.0.2.2从模拟器浏览器,它工作,当我在模拟器中使用我的android应用程序时,它再次开始显示连接拒绝问题。
然后我做了ifconfig,我使用IP 192.168.2.2,它工作得很好
运行您的本地主机后,您会得到http://localhost:[端口号]/在这里您可以找到您的端口号。
然后从命令中获取你的IP地址,打开你的windows命令,输入ipconfig
在我的例子中,IP是192.168.10.33,所以我的URL将是http://192.168.10.33:[端口号]/。 在Android中,工作室使用这个URL作为你的URL。然后在模拟器的手动代理中设置URL和端口号。
如果有人还在寻找这个,这就是我的工作方式。
您需要找到您的机器相对于您所连接的设备/模拟器的IP。对于模拟器的方法是按照以下步骤;
进入虚拟机虚拟框->在列表中选择连接的设备。 选择“设置”->网络->确认设备连接到哪个网络。对我来说,它是“VirtualBox主机专用以太网适配器#2”。 在virtualbox中进入“文件->首选项->网络->主机专用网络”,找到上面步骤中指定的网络的IPv4。(通过悬停你会得到信息)
提供这个IP以从模拟器访问本地主机。端口与您在运行/发布服务时提供的端口相同。
注意#1:确保您已经注意到防火墙和入站规则。
注意#2:请在重新启动计算机后检查此IP。由于某种原因,即使我提供了“使用以下IP”,主机IP也发生了变化。
如果你和Asp一起工作。Net Web API,在项目中的.vs/config文件夹中,根据您的端口设置修改这些行。假设你使用端口1234和物理路径的项目文件夹设置由IIS是“D:\My Projects\YourSiteName”,那么
<site name="YourSiteName" id="1">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\My Projects\YourSiteName" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:1234:*" />
</bindings>
</site>
在android studio中,使用“http://10.0.2.2:1234”访问你的api…