首先抱歉我的英语不好,但我来自德国。不过我希望你能理解我的问题是什么。 我正在使用Webclient,它应该从SAP C4C Odata服务下载XML文件。如果我第一次启动应用程序并运行下载,一切都很有效。但是如果第一次运行完成并且我正在尝试下载下一个文件,那么应用程序将抛出以下异常:
java.io.IOException: Server returned HTTP response code: 400 for URL: --
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at com.model.Model.createTemp(Model.java:164)
at com.model.Model.checkFilter(Model.java:122)
at com.model.Model$1.actionPerformed(Model.java:50)
我在最后几天搜索过这个问题,但从未找到解决方案。 也许你们会看到我未能看到的东西。
这是我的代码,我从URL下载字符串。
public void createTemp(String odata) throws IOException, ParserConfigurationException, SAXException {
File export = new File("temp");
if (!export.exists()) {
export.mkdir();
}
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, pass.toCharArray());
}
});
out = new Scanner(new URL(odata).openStream(), "UTF-8").useDelimiter("\\A").next();
OutputStreamWriter xmlout = new OutputStreamWriter(new FileOutputStream("temp\\tempout.xml"), "UTF-8");
xmlout.write(out);
xmlout.close();
File xml = new File("temp\\tempout.xml");
writeCSV(xml);
}
感谢大家提前做好准备!