Android java。网UnknownHostException:主机未解析:服务器地址:443
我正在尝试通过https连接从服务器获取xml。如果我使用curl命令
curl -k -A "Mozilla/4.0" https://username:password@server.com/test/infoxml.ashx
连接已成功,但当我在安卓上用java尝试时,它不起作用。我正在使用以下代码:
URL url = new URL("https://user:password@server.com");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Basic **********************");
conn.setRequestProperty("User-Agent", "Mozilla/4.0");
conn.setRequestProperty("Host", "server.com");
conn.setRequestProperty("Accept", "*/*");
InputStream content = conn.getInputStream();
如您所见,我根据working curl命令的详细输出设置了头,如下所示:
* About to connect() to server.com port 443 (#0)
* Trying (server ip)... connected
* Connected to server.com (server ip) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
* subject: C=SI; ST=City; L=City; O=Company d.d; OU=ES; CN=server.com
* start date: 2010-02-05 00:00:00 GMT
* expire date: 2011-02-02 23:59:59 GMT
* common name: server.com (matched)
* issuer: C=ZA; ST=Western Cape; L=Cape Town; O=Thawte Consulting cc; OU=Certification Services Division; CN=Thawte Premium Server CA; emailAddress=censored
* SSL certificate verify ok.
* Server auth using Basic with user 'username'
> GET /test/infoxml.ashx HTTP/1.1
> Authorization: Basic ****************************
> User-Agent: Mozilla/4.0
> Host: server.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: Keep-Alive
< X-Powered-By: ASP.NET
< X-AspNet-Version: 2.0.50727
< Keep-Alive: timeout=5, max=100
< Server: Microsoft-IIS/6.0
< Cache-Control: private
< Set-Cookie: JSESSIONID=abcs8ebwPsf-A-biM7KTs; path=/
< Content-Type: text/xml; charset=utf-8
< Content-Length: 1688
< Date: Thu, 30 Sep 2010 23:16:06 GMT
<
* Connection #0 to host server.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
<?xml version="1.0"...
我不熟悉这种安全连接的东西,所以请对我放松:)
顺便说一句,对不起,我的英语不好
# 1 楼答案
试试下面的方法。有关
HttpRequestInterceptor
后面的有理数,请参见this blog post on "Http Basic Authentication with Android"。我没有尝试过该代码,但它是一个工作代码的集合,我使用了它,并添加了基本的身份验证部分