1
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 从客户端连接到我的 Web 服务的代码。我在 URL 中硬编码 IP 地址。当我切换到新网络时,我需要将应用程序的 IP 地址更改为工作

任何人都可以分享这个解决方案吗?

4

2 回答 2

1

有两种方法可以解决它。

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

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

于 2012-08-23T12:47:19.307 回答
1

例如:

从例如此列表中选择免费的动态 DNS服务。你会得到一个这样的地址,你可以设置为指向你的 IP 地址。然后用新地址替换硬编码的 IP。http://myserver.dyndns.org

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

动态 DNS 实际上适用于非常定期更改的 IP 地址(并​​且可能需要这些服务定期更新 IP)。如果您不需要,请寻找常规的DNS 托管服务

于 2012-08-22T21:57:57.923 回答