0

我正在尝试将 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();
4

1 回答 1

1

从客户端可以做的不多,这只是一个服务器端问题,其中服务器需要很长时间来处理数据,这导致服务器连接超时,然后才能发送响应。

于 2013-07-02T16:45:45.053 回答