Поток ошибок в HttpUrlConnection

Я хочу сделать POST-запрос к сервлету HTTP, который я написал сам. Хороший случай (код ответа HTTP 200) всегда отлично работает при использовании метода URL.openConnection (). Но когда я получаю желаемый код ответа об ошибке (например, 400), я подумал, что мне нужно использовать HttpUrlConnection.getErrorStream (). Но объект ErrorStream имеет значение null, хотя я отправляю данные обратно из сервлета в случае ошибки (я хочу оценить эти данные для генерации сообщений об ошибках). Вот как выглядит мой код:

HttpURLConnection con = null;
        try {
            //Generating request String
            String request = "request="+URLEncoder.encode(xmlGenerator.getStringFromDocument(xmlGenerator.generateConnectRequest(1234)),"UTF-8");
            //Receiving HttpUrlConnection (DoOutput = true; RequestMethod is set to "POST")
            con = openConnection();
            if (con != null){
                PrintWriter pw = new PrintWriter(con.getOutputStream());
                pw.println(request);
                pw.flush();
                pw.close();
                InputStream errorstream = con.getErrorStream();

                BufferedReader br = null;
                if (errorstream == null){
                    InputStream inputstream = con.getInputStream();
                    br = new BufferedReader(new InputStreamReader(inputstream));
                }else{
                    br = new BufferedReader(new InputStreamReader(errorstream));
                }
                String response = "";
                String nachricht;
                while ((nachricht = br.readLine()) != null){
                    response += nachricht;
                }
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Итак, мой вопрос: почему getErrorStream () возвращает null, хотя код состояния равен 400 (я вижу это в IOException, которое возникает при вызове con.getInputStream ())

Спасибо

18
задан Matthias Herbst 20 May 2011 в 10:06
поделиться