我正在尝试以以下形式打开与某些给定URL的http连接:

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


我想为其打开一个Http连接,获取它的inputStream,并在inputstream上进行一些解析(请参见下面的代码段)。但是我得到的只是一个MalformedURLException。

任何人都知道此URL有什么问题吗?是导致问题的参数“?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!

最佳答案

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

为了安全起见,对于查询的每个参数值,不仅要使用java.net.URLEncoder.encode("中文", "UTF-8"),还要使用TypeName

08-05 19:02