我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
当前回答
1)在cmd下执行ipconfig命令
2)你会得到这样的结果
3)使用VMWare网卡1的IPv4地址加上端口号
在我的例子中是8080,所以不用localhost:8080
我使用的是192.168.51:8080
做……
其他回答
问题是Android模拟器将10.0.2.2映射到127.0.0.1,而不是映射到localhost。因此,将web服务器配置为serveron 127.0.0.1:54722,而不是localhost:54722。这样就行了。
对于Laravel宅基地用户: 如果任何人使用Laravel与homestead,您可以在模拟器中使用192.168.10.10访问应用程序后端
还是不行? 另一个好的解决方案是使用ngrok https://ngrok.com/
我不确定这个解决方案是否适用于每个Android模拟器和每个Android SDK版本,但运行下面的方法对我来说是有效的。
adb reverse tcp:54722 tcp:54722
您需要让模拟器运行起来,然后才能在运行的模拟器设备中成功地点击localhost:54722。
坏请求通常意味着您发送的数据格式不正确。可能是数据映射不匹配。如果您正在收到坏请求,则意味着您能够连接到服务器,但请求没有正确发送。
如果您正在使用IIS Express,您可能需要绑定到所有主机名,而不仅仅是“localhost”。看看这个精彩的答案:
https://stackoverflow.com/a/15809698/383761
告诉IIS Express本身绑定到所有ip地址和主机名。在你的.config文件中(通常是%userprofile%\My 文档\ IISExpress \ config \ applicationhost。配置,或者 $ (solutionDir) .vs \ config \ applicationhost。Visual Studio配置 2015),找到你网站的绑定元素,并添加 /> . <绑定协议="http" bindingInformation="*:8080:*
请确保将其作为第二个绑定添加,而不是修改现有的绑定,否则VS将重新添加一个附加了(1)的新站点。此外,您可能需要以管理员身份运行VS。