服务器返回HTTP响应代码:400

use*_*306 2 java

我正在从网络服务中读取数据.问题,如果我把链接放在浏览器上它工作正常.当我这样跑的时候给我错误.我怀疑是由于我发送参数的方式.我的参数列表有这个dID=1,5,7,11,14,18,26&FromDate=18 Sep 2012 00:00 am&ToDate=18 Sep 2012 10:00 am.我需要在这里做一些编码吗?

URL xmlURLDM = new URL(urlDM);
InputStream xml2 = xmlURLDM.openStream();
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

java.io.IOException: Server returned HTTP response code: 400 for URL: 
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1612)
        at java.net.URL.openStream(URL.java:1035)
        at xmlreader.main(xmlreader.java:172)
Run Code Online (Sandbox Code Playgroud)

Pau*_*ett 6

你确实需要编码,大多数情况下你的URL中的空格会导致麻烦.使用内置url-encoding的Javas.例如:

String encoded = URLEncoder.encode(myUrl, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

...使用编码为URL调用Web服务

状态代码为400可能有其他原因,但这种编码问题可能是您的第一个绊脚石.