android - 将本地主机上运行的服务暴露给 Android 模拟器?

标签 android asp.net windows rest visual-studio-2012

我正在通过 ASP.net/Visual Studio 运行与 Android 应用程序一起开发的服务。当我通过 VS 运行该服务时,可以通过 http://localhost:13980/ 访问它,但不能通过 http://127.0.0.1:13980/ (这给出了一个“错误的请求 - 无效的主机名”400 错误)。显然,我不能告诉 Android 应用程序在“localhost”寻找服务,因为它会指向它自己。

我了解 ( according to this page ) Android 模拟器将 10.0.2.2 视为主机 127.0.0.1 的直通 IP 地址,因此如果我 a) 获得 localhost通过 127.0.0.1 正确公开,并且 b) 将应用程序中的目标地址从 localhost:port 更改为 10.0.2.2:port。

我将如何着手完成 A 部分?我运行的是 Windows 8.1 Pro、Visual Studio 2012,并且相关项目的目标是 .NET 4.5。

谢谢!

最佳答案

你有两个选择:

  1. 在 IIS 而不是 VS Cassini 下运行网络服务。这样您就可以将 Web 服务绑定(bind)到本地网络的 IP 地址,例如http://10.0.2.2:8081
  2. 修改 Android 模拟器上的主机文件,将本地主机重定向到您计算机的 IP 地址

第二个不是很好的解决方案。它可能会导致与操作系统发生一些冲突,我什至不确定卡西尼号是否仍会满足该请求。 Visual Studio 的内置 Web 服务器 (Cassini) 仅监听本地请求,因此选项 (1) 确实是最灵活的。另外,因为你有 W8 Pro IIS is already built-in .

关于android - 将本地主机上运行的服务暴露给 Android 模拟器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066625/

相关文章:

java - Docx4J(Android):如何在Word文档中读取页眉和页脚的内容

android - NoClassDefFoundError : Failed resolution of :Ljavax/XML/stream/XMLEventFactory with Apache POI on Android

android - 向 Bluemix 部署的 Node.js 应用程序发送 httppost 请求时出现 "Unfortunately app has stopped"错误

c# - ASP.NET:多台服务器上的 SHA1 + Salt 密码哈希

javascript - 如何格式化客户端文本框输入

windows - 如何强制 Windows 清除所有磁盘读取缓存数据?

java - 如何在退出/暂停应用程序时暂停背景音乐服务?

c# - 动态创建不同类型的 Web 控件

CSS 用于修复 Chrome 中 Wordpress 中的垂直 Logo 对齐问题

c - *.* 在 C 中的 argv[1] 中