Передать объект json по навигатору вместо java

У меня есть java-приложение с этим кодом:

URL url = new URL("http://myurl/");
HttURLConnection connection = (HttURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutplut(true);
connection.setRequestProperty("Content-Type", "application/json");
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
buffer.write("{\"foo:\"0}");
buffer.flush();

Я просто хочу сделать то же самое в строке URL-адреса навигации.

Редактировать

Я нашел инструмент для модификации заголовков. Вот скриншот инструмента разработчика, когда я загружаю свою страницу. Теперь, где я поместил свой объект Json?

Передать объект json по навигатору вместо java

Content-Type должен быть внутри заголовка, а не запроса.
Aniket Sahrawat 28.03.2019 17:44

И {\"foo\":bar} в теле, а не в параметрах запроса. Кроме того, это недопустимый JSON, что кажется подозрительным.

Aaron 28.03.2019 17:47

да, это {\"foo:\"bar}. это не важная часть

Julien Maret 28.03.2019 17:52

@AniketSahrawat, как я поместил заголовок?

Julien Maret 28.03.2019 17:53

@JulienMaret Вы делаете это правильно во фрагменте кода. Я предлагаю вам добавить connection.setRequestProperty("Accept", "application/json"); вместе с ним. Это может или не может изменить вывод сервера. Также строка JSON, которую вы пытаетесь передать, недействительна. Правильный JSON будет "{\"foo\":\"bar\"}"

Aniket Sahrawat 28.03.2019 18:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам нужно отправить JSON данные на ваш URL, ваш код должен быть таким,

            URL url = new URL("http://myurl/");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(true);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/json");

            String input = "{\"foo\":\"bar\"}";
            OutputStream ous = con.getOutputStream();
            ous.write(input.getBytes());
            ous.flush();

            if (con.getResponseCode() != HttpURLConnection.HTTP_OK)
            {
                throw new RuntimeException("Failed : HTTP error code : " + con.getResponseCode());
            }else
            {
                BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
                String output;
                System.out.println("Output from Server .... \n");
                while ((output = br.readLine()) != null) 
                {
                     System.out.println(output);
                }
            }

            con.disconnect();

Если вам нужен метод GET, вы можете разместить это,

con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");

Если вам нужно отправить тело запроса с URL-адресом, вы можете использовать CURL. А также вы можете использовать ПОЧТАЛЬОН. Используя это, вы можете отправлять запросы и получать ответ.

CURL будет вот так,

curl -v -H "Content-Type: application/json" -X POST \
     -d '{\"foo\":\"bar\"}' http://myurl/

Вы можете использовать Firefox, чтобы выполнить то, что вам нужно, Прочитайте 2-й ответ.

на самом деле это так.

Julien Maret 28.03.2019 18:00

Я отредактировал вопрос. Я хотел бы не устанавливать новое программное обеспечение и использовать только свой навигатор.

Julien Maret 28.03.2019 18:28

Другие вопросы по теме