【问题标题】:Calling a web service from android locally在本地从 android 调用 Web 服务
【发布时间】:2013-01-08 16:27:10
【问题描述】:

我已经构建了一个从我的 android 应用程序调用的网络服务。我的问题是,当我想将我的手机与我的笔记本电脑连接并在不使用互联网的情况下在本地调用此服务时。(前提是我的服务器在本地运行)我该怎么做?我知道在运行 avd 时有一个 shell 属性,但是当我从与我的服务器在同一个局域网中的平板电脑上运行它时,如何实现这一点?谢谢你的时间。

【问题讨论】:

  • 使用你的IP地址,httppost= new HttpPost("10.0.2.2/my_folder_inside_htdocs/check.php"); //IP地址代替10.0.2.2
  • 好的,对不起,如果我让你感到疲倦,但让我直截了当。现在我使用 something.something.com/something.svc,that 是我的服务的 url。我如何添加内部 ip?
  • 您必须在某些服务器(在您的计算机上)上运行 Web 服务,对吧?当您运行服务器时,它将在本地托管。那么,您可以通过使用您的本地 IP 地址来调用您的东西吗? xxx.1.222.32/something.svc

标签: android


【解决方案1】:

当您想使用 Internet 调用 Web 服务时,您使用服务器的外部 ip 和端口。但是如果你想在本地调用你的 web 服务(不使用 Internet),你需要使用你服务器的内部 ip。您可以从 Windows 命令 ipconfig 或 linux 命令 ifconfig

中查看您的内部 ip

【讨论】:

  • 好吧,理论上我明白了。但是我需要调用我的网络服务的是 url。你的意思是我必须在 url 中添加内部 ip?
  • 没错。如果您使用例如此 url 调用您的 ws; http://YourExternalIP_or_YourDomainName/YourFolder/YourService?parameter=... 应该转换成http://YourInternalIP/YourFolder/YourService?parameter=...
  • 我们在本地电脑的哪里放置webservice文件夹
  • @Lalit 这有关系吗?毕竟,您的 PC 应该 托管 Web 服务,并且您应该能够通过在本地浏览器(IE、IE、 Firefox、Chrome 等)这只是您的目录结构的决定。
【解决方案2】:

您的手机和笔记本电脑是如何连接的? 要使用在您的笔记本电脑中运行的 Web 服务,您需要在同一网络中运行两者,例如您需要将笔记本电脑和移动设备连接到网络中的 wifi 路由器。当您使用cable或wifi将您的笔记本电脑与wifi路由器连接时,路由器将为您的笔记本电脑分配一个IP,您可以在您的移动应用程序中使用该IP访问网络服务,

简而言之:手机和笔记本电脑之间需要网络

【讨论】:

  • 是的,我知道。我说他们在同一个局域网上。
  • 检查您的笔记本电脑和手机之间的可访问性,1. 从手机打开浏览器,2. 打开链接 http://: 如果有,请提供您的 Web 服务器端口,如果显示您的网络服务器的默认页面,则一切正常,另一种选择是您可以在 Android 应用程序中安装 RESTClient,打开 google Play ,搜索“rest client”安装任何客户端并调用您的网络服务。
猜你喜欢
  • 1970-01-01
  • 2012-01-04
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多