碰到个很奇怪的问题:
代码如下:
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]