Java 如何获取西里尔语域,如;http://ньюбалансрф&引用;使用Apache HTTP客户端?

Java 如何获取西里尔语域,如;http://ньюбалансрф&引用;使用Apache HTTP客户端?,java,android,http,utf-8,apache-httpclient-4.x,Java,Android,Http,Utf 8,Apache Httpclient 4.x,使用httpclientfororg.apache.httpcomponentsversion4.3.6我试图通过new-HttpGet(url)对域名执行GET请求,如http://юаааааБф,但最终出现以下错误: Caused by: java.net.UnknownHostException: ?????????.?? at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddre

使用
httpclient
for
org.apache.httpcomponents
version
4.3.6
我试图通过
new-HttpGet(url)
对域名执行
GET
请求,如
http://юаааааБф
,但最终出现以下错误:

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值-它肯定不是由“?”字符组成的


如何向此类域名发送请求?

我找到了解决方案

"http://"+IDN.toASCII(domain);

我找到了解决办法

"http://"+IDN.toASCII(domain);

在解析域之前,您需要将域名编码为微不足道的代码

final encodedDomain = IDN.toASCII(unicodeDomain);

请在此处查看Android文档:

在解析域之前,您需要将域名编码为微不足道的代码

final encodedDomain = IDN.toASCII(unicodeDomain);
请在此处查看Android文档: