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
fororg.apache.httpcomponents
version4.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文档: