как получить данные в сервлет, который отправляется с помощью httpcommunicator с методом post

#java #http

#java #http

Вопрос:

Я пытаюсь отправить данные с помощью класса httpcommunicator. вот мой код.

 public String postData(String address,String dataToBePosted) throws MalformedURLException,IOException,ProtocolException{

    /** set up the http connection parameters */
    HttpURLConnection    urlc = (HttpURLConnection) (new URL(address)).openConnection();
    urlc.setRequestMethod("POST");
    urlc.setDoOutput(true);
    urlc.setDoInput(true);
    urlc.setUseCaches(false);
    urlc.setAllowUserInteraction(false);
    urlc.setRequestProperty("Content-type", "text/xml; charset="   "UTF-8");

    /** post the data */
    OutputStream out = null;
    out = urlc.getOutputStream();
    Writer writer = new OutputStreamWriter(out, "UTF-8");
    writer.write(dataToBePosted);
    writer.close();
    out.close();

    /** read the response back from the posted data */
    BufferedReader bfreader = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
    StringBuilder builder = new StringBuilder(100);
    String line = "";
    while ((line = bfreader.readLine()) != null) {
        builder.append(line "n");
    }
    bfreader.close();

    /** return the response back from the POST */
    return builder.toString();
  

Я отправляю их на свой сервлет.
но я не знаю, как его извлечь.
существует ли какой-либо метод, такой как getPerameter или другой?

Спасибо.

Ответ №1:

Я не пробовал ваш код, но мне он кажется разумным, за возможным исключением того, что вы, похоже, не отключаете свой HttpURLConnection, когда закончите с ним.

Что происходит, когда вы запускаете код? Вы видите исключение? Можете ли вы сказать, что они достигли сервлета? Что вы видите, если посмотрите на содержимое builder, выполнив System.out.println(builder.toString() ?

Комментарии:

1. я нашел решение. я использую OutputStream out = null; вместо этого используйте OutputStreamWriter.