Android - 如何处理/打开包含非ASCII字符的URL的http连接?

时间:2011-04-25 14:51:36

标签: java android

我正在尝试以下列形式打开某个给定网址的http连接:

http://example.com/xml.aspx?RssType=1&TypeName=中文

我想打开一个Http连接,获取它的inputStream,并在输入流上做一些解析(参见下面的代码片段)。但我得到的只是一个MalformedURLException。

任何人都知道这个网址有什么问题?引起问题的参数“?Rss ...& ...”或最后的非ASCII字符是否有问题?

代码段:

String feed = getString(R.string.feed_url);

URL url = null;
HttpURLConnection httpConn = null;
try {
    url = new URL(feed);
    httpConn = (HttpURLConnection) url.openConnection();  
    if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {  // exception here!

1 个答案:

答案 0 :(得分:2)

您需要对参数进行URL编码,尤其是中文位。

使用java.net.URLEncoder.encode("中文", "UTF-8") - 对于查询的每个参数值都是安全的,而不仅仅是TypeName