Java 具有计算机名的特殊UnknownHostException

Java 具有计算机名的特殊UnknownHostException,java,android,exception,dns,Java,Android,Exception,Dns,我得到一个UnknownHostException(来自lookuphostbyname) 这样做: result = httpClient.execute(httpGet, responseHandler); 我有上网许可和上网权限 而且:如果我使用ip,它会工作。 如果我使用它,它会工作 但是如果我在URL中使用机器名,它不会。。。 这怎么可能?android/java不处理机器名吗 我还尝试: InetAddress i = InetAddress.getByName(URLName);

我得到一个
UnknownHostException
(来自
lookuphostbyname

这样做:

result = httpClient.execute(httpGet, responseHandler);
我有上网许可和上网权限

而且:如果我使用ip,它会工作。 如果我使用它,它会工作

但是如果我在URL中使用机器名,它不会。。。 这怎么可能?android/java不处理机器名吗

我还尝试:

InetAddress i = InetAddress.getByName(URLName);
我不知道我下一步能做什么


编辑:使用fqdn它可以工作。但是机器名不是吗?

机器名必须在这台机器可以看到的DNS中注册,或者需要在主机文件中解析。

机器名必须在这台机器可以看到的DNS中注册,或者需要在主机文件中解析。

仅澄清几件事

如果您使用的是emulator,则可以认为它与使用单独的设备完全相同

这样,任何网络请求都将被视为不是来自您的PC

虽然我相信可以进入设备/模拟器并添加主机记录,但这并不是您真正想要走的路

最好的办法是只使用IP地址,或者始终确保您使用的地址位于可以从设备/仿真器访问的DNS中(不需要是公共地址)


基本上,将模拟器/设备视为一台单独的计算机,您将知道您需要去哪里

只是为了澄清一些事情

如果您使用的是emulator,则可以认为它与使用单独的设备完全相同

这样,任何网络请求都将被视为不是来自您的PC

虽然我相信可以进入设备/模拟器并添加主机记录,但这并不是您真正想要走的路

最好的办法是只使用IP地址,或者始终确保您使用的地址位于可以从设备/仿真器访问的DNS中(不需要是公共地址)


基本上将仿真器/设备视为一台单独的计算机,您将知道使用fqdn需要去哪里

。但是没有机会使用机器名吗?使用fqdn是有效的。但是没有机会使用机器名吗?我如何在DNS中注册它?使用windows(例如ping)它在该网络中工作。。。主机文件是一个选项,但我不想编辑所有用户的此文件;-)如何在DNS中注册它?使用windows(例如ping)它在该网络中工作。。。主机文件是一个选项,但我不想编辑所有用户的此文件;-)