Java http post: добавлены значения arent

Я пытаюсь отправить запрос на отправку, но webserver возвращает, что я добавил никаких пост-значений. Я потратил много времени, пытаясь решить эту проблему, но никакого результата. Вот код:

    public static String post(String url, String postParams)
{
    URLConnection connection = null;
    try
    {
        connection = initializeConnection(url);
        connection.setDoOutput(true);
        ((HttpURLConnection) connection).setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "text/xml");
        connection.setRequestProperty("Accept", "text/xml");
        connection.setUseCaches(false);
        connection.setDoInput(true);
        DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
        wr.write(postParams.getBytes());

        wr.flush();
        wr.close();

       //Get Response
        InputStream is = connection.getInputStream();
        return inputStreamToString(is);
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return null;

    }
}

protected static HttpURLConnection initializeConnection(String stringUrl)
{
    HttpURLConnection connection;
    URL url = null;
    try
    {
        url = new URL(stringUrl);
    }
    catch (MalformedURLException e1)
    {
        e1.printStackTrace();
    }
    try
    {
        connection = (HttpURLConnection) url.openConnection();
        connection.setConnectTimeout(5000);
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return null;
    }

    return connection;
}

public static String inputStreamToString(InputStream is)
{
    BufferedReader r = new BufferedReader(new InputStreamReader(is));
    StringBuilder total = new StringBuilder();
    String line;
    try
    {
        while ((line = r.readLine()) != null)
        {
            total.append(line);
        }
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return total.toString();
}

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

0
Попробуйте настроить тип содержимого на text/html . Попробуйте простые параметры post "x = y \ r \ n" . Кстати, многие примеры используют DataOutputStream, но лучше будет новый PrintWriter (новый BufferedWriter (новый OutputStreamWriter (новый FileOutputStream (файл), «ISO-8859-1»))) .
добавлено автор Joop Eggen, источник
Попробуйте настроить тип содержимого на text/html . Попробуйте простые параметры post "x = y \ r \ n" . Кстати, многие примеры используют DataOutputStream, но лучше будет новый PrintWriter (новый BufferedWriter (новый OutputStreamWriter (новый FileOutputStream (файл), «ISO-8859-1»))) .
добавлено автор Joop Eggen, источник
Попробуйте настроить тип содержимого на text/html . Попробуйте простые параметры post "x = y \ r \ n" . Кстати, многие примеры используют DataOutputStream, но лучше будет новый PrintWriter (новый BufferedWriter (новый OutputStreamWriter (новый FileOutputStream (файл), «ISO-8859-1»))) .
добавлено автор Joop Eggen, источник
проверьте, получаете ли вы postParams в своем методе post ... Кажется, что код в порядке ...
добавлено автор Pratik, источник
проверьте, получаете ли вы postParams в своем методе post ... Кажется, что код в порядке ...
добавлено автор Pratik, источник
проверьте, получаете ли вы postParams в своем методе post ... Кажется, что код в порядке ...
добавлено автор Pratik, источник
В отладчике вы подтвердили, что postParams содержит данные и результат вызова getBytes() на нем предоставляет вам данные?
добавлено автор Brian Dishaw, источник
В отладчике вы подтвердили, что postParams содержит данные и результат вызова getBytes() на нем предоставляет вам данные?
добавлено автор Brian Dishaw, источник
В отладчике вы подтвердили, что postParams содержит данные и результат вызова getBytes() на нем предоставляет вам данные?
добавлено автор Brian Dishaw, источник
используйте Wireshark или Fiddler для проверки передачи данных на сетевом уровне.
добавлено автор burna, источник
FileOutputStream? Возможно, вы имели в виду: new OutputStreamWriter (connection.getOutputStream (), "ISO-8859-1"). Write (postParams) ???
добавлено автор tuga, источник
FileOutputStream? Возможно, вы имели в виду: new OutputStreamWriter (connection.getOutputStream (), "ISO-8859-1"). Write (postParams) ???
добавлено автор tuga, источник
FileOutputStream? Возможно, вы имели в виду: new OutputStreamWriter (connection.getOutputStream (), "ISO-8859-1"). Write (postParams) ???
добавлено автор tuga, источник

6 ответы

Оказалось, что все, что мне нужно было сделать, это заменить

connection.setRequestProperty("Content-Type", "text/xml");

с

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

Так просто и так много времени, чтобы очистить его ... Кстати, как я мог знать, что серверу нужен этот заголовок? Я думал, что вся работа, которая необходима для запроса, будет автоматически выполнена java ..

Постскриптум Ускорение этой проблемы помогло установить скрипач.

1
добавлено

Оказалось, что все, что мне нужно было сделать, это заменить

connection.setRequestProperty("Content-Type", "text/xml");

с

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

Так просто и так много времени, чтобы очистить его ... Кстати, как я мог знать, что серверу нужен этот заголовок? Я думал, что вся работа, которая необходима для запроса, будет автоматически выполнена java ..

Постскриптум Ускорение этой проблемы помогло установить скрипач.

1
добавлено

Оказалось, что все, что мне нужно было сделать, это заменить

connection.setRequestProperty("Content-Type", "text/xml");

с

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

Так просто и так много времени, чтобы очистить его ... Кстати, как я мог знать, что серверу нужен этот заголовок? Я думал, что вся работа, которая необходима для запроса, будет автоматически выполнена java ..

Постскриптум Ускорение этой проблемы помогло установить скрипач.

1
добавлено

отлаживать параметр postParams и проверять, что было отправлено.

0
добавлено
Я согласен, но он не может писать комментарии.
добавлено автор Pr0gr4mm3r, источник
Это комментарий, а не ответ.
добавлено автор Gimby, источник

отлаживать параметр postParams и проверять, что было отправлено.

0
добавлено
Я согласен, но он не может писать комментарии.
добавлено автор Pr0gr4mm3r, источник
Это комментарий, а не ответ.
добавлено автор Gimby, источник

отлаживать параметр postParams и проверять, что было отправлено.

0
добавлено
Я согласен, но он не может писать комментарии.
добавлено автор Pr0gr4mm3r, источник
Это комментарий, а не ответ.
добавлено автор Gimby, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async