为 org.apache.httpcomponents
版本 4.3.6
使用 httpclient
我尝试执行 GET
请求像 http://ньюбаланс.рф
by new HttpGet(url)
这样的域名,但最终会出现以下错误:
Caused by: java.net.UnknownHostException: ?????????.??
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:907)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1302)
at java.net.InetAddress.getAllByName0(InetAddress.java:1255)
...
url 变量具有正确的 UTF-8 值 - 它绝对不是从“?”构建的字符。
如何向此类域名发送请求?
最佳答案
在解析域之前,您需要将域名编码为微不足道的代码。
final encodedDomain = IDN.toASCII(unicodeDomain);
另请在此处查看 Android 文档:http://developer.android.com/reference/java/net/IDN.html
关于java - 如何使用 Apache HTTP 客户端获取像 "http://ньюбаланс.рф"这样的西里尔域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059317/