我正在尝试将XML数据发布到处理此XML并返回响应的服务器,有时XML数据可能非常大并且服务器需要一段时间来处理它,在那些情况下我无法获得任何数据响应回来我收到一个IOException,消息“来自服务器的文件意外结束”。我很肯定发送到服务器的XML并没有充满错误,我能做些什么来确保这不会发生或者这是服务器方面的问题?下面是我调用发布数据的方法的代码片段。
感谢。
String encodedData="some XML"
String urlString="example.com"
try {
URL url = new URL(urlString);
HttpURLConnection urlConnection;
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", contentType);
urlConnection.setRequestProperty("Content-Length", encodedData.length()+"");
OutputStream os = urlConnection.getOutputStream();
os.write(encodedData.getBytes());
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
in.close();
} catch (MalformedURLException e) {
logger.debug("MalformedURLException " + e.getMessage());
logger.debug((new StringBuilder()).append("urlString=").append(urlString).toString());
throw (e);
} catch (IOException e) {
logger.debug("IOException " + e.getMessage());
logger.debug((new StringBuilder()).append("urlString=").append(urlString).toString());
throw (e);
}
return sb.toString();
答案 0 :(得分:0)
从客户端可以做的不多,这只是一个服务器端问题,服务器需要很长时间来处理数据,导致服务器连接超时才能发送响应。