![](/img/trans.png)
[英]Solr SimplePostTool: IOException while reading response: java.net.SocketException: Unexpected end of file from server
[英]Java IOException “Unexpected end of file from server” when posting large data
我试图将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();
客户端无法做很多事情,这只是服务器端的问题,其中服务器需要很长时间来处理数据,这导致服务器在发送响应之前连接超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.