【发布时间】:2017-04-25 04:32:55
【问题描述】:
为了让我的应用获得 Apple 审核团队的批准,我遇到了另一个障碍。
正如标题所示,当调用InetAddress.getAllByName("https://artatlas.io") 时会抛出UnknownHostException。这只发生在他们的测试过程中。当我在本地 NAT64 网络上测试我的应用程序时(按照 Apple 的建议);该错误永远不会发生,并且该应用程序按预期工作。
我正在运行的代码:
System.setProperty("java.net.preferIPv6Addresses", "true");
System.setProperty("networkaddress.cache.negative.ttl", "0");
InetAddress[] addrs;
try {
addrs = InetAddress.getAllByName("https://artatlas.io");
String addresses = "";
for(InetAddress addr: addrs){
addresses += addr + "\n";
}
System.out.println("Addresses: " + addresses + "\n");
} catch (IOException e1) {
e1.printStackTrace();
}
我发现,我附加“https://”的任何内容似乎都返回相同的单个 IP 地址:
Addresses: https://artatlas.io/122.150.5.20
Addresses: https://google.com/122.150.5.20
Addresses: https://www.google.com/122.150.5.20
我可以摆脱 https,但我担心以后使用 HttpsURLConnection 会失败(我的连接必须是 https)
testUrl = new URL("https://artatlas.io");
testConn = (HttpsURLConnection) testUrl.openConnection();
我知道HttpsURLConnection 使用 InetAddress 实例来形成其连接,所以问题是它使用什么过程来解析 URL 字符串,它是否删除了协议?这里的正确方法是什么?
【问题讨论】:
标签: java ios eclipse oracle-maf