java.io.IOException: Server returned HTTP response code: 505 for URL

碰到个很奇怪的问题:
代码如下:

        URL url = new URL(urlStr);
        URLConnection hpCon = url.openConnection();
        InputStream in = hpCon.getInputStream();

然后我发送的一个URL是 : http://localhost:8000/account/accountTo.query?param=SR4A V12f

报错:java.io.IOException: Server returned HTTP response code: 505 for URL: http://localhost:8000/account/accountTo.query?param=SR4A V12f

这个URL在任何的浏览器都有数据显示,说明和服务器的通信正常。

这里的参数 param=SR4A V12f 中间有个空格 ,我尝试了如果没有空格,访问正常,能够得到数据。是不是因为多了个空格而出问题了?

或者
[code="java"]java.net.URLEncoder.encode(url.toString(), "ISO-8859-1");[/code]

[code="java"]把urlStr编码以下
encodeURL(urlStr);
[/code]

或者手动把那个空格encode成加号+。

[code="java"] URI uri = new URI(
"http",
"search.barnesandnoble.com",
"/booksearch/first book.pdf",
null);
URL url = uri.toURL();
String request = uri.toString();[/code]