没有IP地址的KSOAP2连接硬编码

时间:2012-08-22 21:29:44

标签: android ksoap2 android-ksoap2

private String METHOD_NAME = "schedule";
private String NAMESPACE = "http://calculate.backend.web.org";
private String SOAP_ACTION = NAMESPACE + METHOD_NAME; 
private static final String URL = "http://192.168.0.4:8080/AndroidBackEnd/services/Calculate?wsdl";

这是我用来通过Ksoap从客户端连接到我的网络服务的代码..我在URL中硬编码IP地址。 当我切换到新网络时,我需要更改应用程序的IP地址才能工作

有人可以为此分享解决方案吗?

2 个答案:

答案 0 :(得分:1)

例如:

从中选择免费Dynamic DNS服务this list。您可以设置http://myserver.dyndns.org这样的地址,您可以将其设置为指向您的IP地址。然后用新地址替换硬编码的IP。

private static final String URL = "http://myserver.dyndns.org/AndroidBackEnd/services/Calculate?wsdl";

动态DNS实际上是针对非常定期更改的IP地址(并且可能需要这些服务定期更新IP)。如果您不需要寻找常规的DNS hosting service

答案 1 :(得分:1)

有两种方法可以解决这个问题。

  1. (不是很优雅):代替代码中的硬编码,从用户那里获取输入。这部分 AndroidBackEnd/services/Calculate?wsdl 将始终保持不变,因此您只需要托管Web服务的系统的IP地址,并将其与常用部分连接起来。在代码中保存默认值,并在没有输入时运行它。否则,连接到用户输入IP的机器。

  2. (正如其他人已经建议的那样):创建自己的域名。 (很可能你可能需要买一个。有一些人仍然免费提供它,但你需要搜索它们。或者,如果你愿意购买,那么你可以查看http://www.dotster.com/或{{ 3}})。注册域名后,您需要输入提供Web服务的系统的静态IP,以使DNS指向您的系统。