Как отправить post запрос на java
Перейти к содержимому

Как отправить post запрос на java

  • автор:

Результат Post запроса

День Добрый! Как, где, куда сохранить результат post запроса. После отправки запроса в ответе получаю JSON. как мне его сохранить чтобы в дальнейшем использовать эти данные?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Отправка Post запроса
Всем привет. Говорю сразу на java пишу вторую неделю до того писал на C# и запросов никогда не.

Отправка post запроса
Задача: заполнить форму через java приложение. Никогда таким не занимался, но задача интересная.

Получение параметров из POST запроса
Делаю бот ана spring для java , необходимо получить userID и TextMessage.Как это сделать?Подскажите.

Передача xml запроса через post
Нужно отправить на сервер xml запрос (отправить переменную содержащую запрос) с помощью post и.

364 / 251 / 113
Регистрация: 07.10.2017
Сообщений: 1,330

String json = jsonResponse;

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Отправка POST запроса и получение ответа
Здравствуйте! Я новичок в java, мне дали задание распарсерить данные (формат json) и отправить их.

Отправка POST запроса для авторизации
Здравствуйте, хочу авторизоваться на сайте(https://giseo.rkomi.ru/about.html). Посмотрел в Chrome.

Отправка Post запроса на сайт и получение ответа
Здравствуйте. Помогите решить такую проблему: есть сайт на котором всего одно поле для ввода. в.

Отправка post-запроса c параметром в windows-1251
Необходимо отправить post-запрос с параметром в кодировке windows-1251, пробовал использовать.

Результат запроса в ComboBox
Извините за глупый вопрос, но как всё-таки занести результат запроса в комбобокс? вот так.

Распарсить результат POST запроса
Доброго времени! Проблема в следующем: посылаю POST запрос на php страничку, все замечательно. но.

Как сделать POST-запрос с параметром?

Как сделать запрос не пустой, а с POST-параметром запроса (к примеру id)?

ArrayList infoList; private static final String JSON_URL = "http://192.168.0.1/array.php"; loadJSONFromURL(JSON_URL); //------------------------------------------------------------------------------ //начало: private void loadJSONFromURL(String url)< //создание запроса для отправки запроса по URL-адресу: StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() < @Override public void onResponse(String response) < //получение всего объекта json из ответа: try < JSONObject object = new JSONObject(response); //у нас есть массив с именем users внутри объекта //итак, здесь мы получаем этот массив json: JSONArray jsonArray = object.getJSONArray("users"); ArrayListlistItems = getArrayListFromJSONArray(jsonArray); //создание пользовательского объекта адаптера: infoList = listItems; ListAdapter adapter = new ListViewAdapter(getApplicationContext(),R.layout.row,R.id.textViewName,listItems); //добавление адаптера в listview: listView.setAdapter(adapter); >catch (JSONException e) < e.printStackTrace(); >> >, new Response.ErrorListener() < @Override public void onErrorResponse(VolleyError error) < //отображение ошибки, если происходит: Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show(); >>); RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest); > //теперь перебираем все элементы массива json: private ArrayList getArrayListFromJSONArray(JSONArray jsonArray) < ArrayListaList = new ArrayList(); try < if(jsonArray!= null)< for(int i = 0; i> >catch (JSONException js) < js.printStackTrace(); >return aList; > 

Отслеживать

8,576 4 4 золотых знака 21 21 серебряный знак 36 36 бронзовых знаков

Выполнение запроса JSON POST с помощью HttpURLConnection

В этом руководстве мы покажем, как сделать запрос JSON POST с помощью HttpURLConnection .

2. Создание запроса JSON POST с помощью HttpURLConnection ​

2.1. Создать объект URL ​

Давайте создадим объект URL с целевой строкой URI, которая принимает данные JSON через метод HTTP POST:

 URL url = new URL ("https://reqres.in/api/users"); 

2.2. Открыть соединение​

Из приведенного выше объекта URL мы можем вызвать метод openConnection , чтобы получить объект HttpURLConnection .

Мы не можем создать экземпляр HttpURLConnection напрямую, так как это абстрактный класс:

 HttpURLConnection con = (HttpURLConnection)url.openConnection(); 

2.3. Установите метод запроса

Чтобы отправить запрос POST, нам нужно установить для свойства метода запроса значение POST:

 con.setRequestMethod("POST"); 

2.4. Установите параметр заголовка Content-Type запроса​

Установите для заголовка запроса «content-type» значение «application/json» , чтобы отправить содержимое запроса в формате JSON. Этот параметр должен быть установлен для отправки тела запроса в формате JSON.

В противном случае сервер возвращает код состояния HTTP «400-bad request»:

 con.setRequestProperty("Content-Type", "application/json"); 

2.5. Установить тип формата ответа​

Установите заголовок запроса «Accept» на «application/json» , чтобы прочитать ответ в нужном формате:

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

2.6. Убедитесь, что соединение будет использоваться для отправки контента​

Чтобы отправить содержимое запроса, установите для свойства doOutput объекта URLConnection значение true .

В противном случае мы не сможем записывать содержимое в выходной поток соединения:

 con.setDoOutput(true); 

2.7. Создайте тело запроса​

После создания пользовательской строки JSON:

 String jsonInputString = "name": "Upendra", "job": "Programmer">"; 

Нам нужно было бы написать это:

 try(OutputStream os = con.getOutputStream())    byte[] input = jsonInputString.getBytes("utf-8");   os.write(input, 0, input.length);   > 

2.8. Чтение ответа из входного потока​

Получите входной поток для чтения содержимого ответа. Не забудьте использовать try-with-resources для автоматического закрытия потока ответов.

Прочитайте все содержимое ответа и напечатайте окончательную строку ответа:

 try(BufferedReader br = new BufferedReader(   new InputStreamReader(con.getInputStream(), "utf-8")))    StringBuilder response = new StringBuilder();   String responseLine = null;   while ((responseLine = br.readLine()) != null)    response.append(responseLine.trim());   >   System.out.println(response.toString());   > 

Если ответ находится в формате JSON, используйте любые сторонние синтаксические анализаторы JSON, такие как библиотека Джексона , Gson или org.json , для анализа ответа.

3. Заключение​

В этой статье мы узнали, как сделать запрос POST с телом содержимого JSON с помощью HttpURLConnection .

Как всегда, соответствующие фрагменты кода можно найти на GitHub.

  • 1. Обзор
  • 2. Создание запроса JSON POST с помощью HttpURLConnection
    • 2.1. Создать объект URL
    • 2.2. Открыть соединение
    • 2.3. Установите метод запроса
    • 2.4. Установите параметр заголовка Content-Type запроса
    • 2.5. Установить тип формата ответа
    • 2.6. Убедитесь, что соединение будет использоваться для отправки контента
    • 2.7. Создайте тело запроса
    • 2.8. Чтение ответа из входного потока

    Отправить запрос HTTP POST в Java

    В этом посте будет обсуждаться, как отправить запрос HTTP POST в Java.

    1. Использование java.net.URLConnection

    The URLConnection class предлагает несколько методов для связи с URL-адресом по сети. Мы можем использовать этот класс для чтения и записи непосредственно в ресурс, на который ссылается URL-адрес.

    Следующая программа извлекает URLConnection объект, вызывая openConnection() метод на URL и получает входной поток, вызывая getInputStream() . Затем программа создает BufferedReader на входной поток и читает из него.

    Чтобы отправить запрос HTTP POST, не забудьте установить URLConnection.setDoOutput() способ true а также записать параметры POST в выходной поток соединения.

    import java . io . BufferedReader ;
    import java . io . DataOutputStream ;
    import java . io . InputStreamReader ;
    import java . net . URL ;
    import java . net . URLConnection ;
    class Main
    public static void main ( String [ ] args ) throws Exception < URL url = new URL ( "https://postman-echo.com/post" ) ; String postData = "foo1=bar1&foo2=bar2" ; URLConnection conn = url . openConnection ( ) ; conn . setDoOutput ( true ) ; conn . setRequestProperty ( "Content-Type" , "application/x-www-form-urlencoded" ) ; conn . setRequestProperty ( "Content-Length" , Integer . toString ( postData . length ( ) ) ) ; try ( DataOutputStream dos = new DataOutputStream ( conn . getOutputStream ( ) ) ) < dos . writeBytes ( postData ) ; try ( BufferedReader bf = new BufferedReader ( new InputStreamReader ( conn . getInputStream ( ) ) ) ) String line ; while ( ( line = bf . readLine ( ) ) != null ) < System . out . println ( line ) ;

    2. Использование java.net.HttpUrlConnection

    Поскольку мы работаем с HTTP, предпочтительнее использовать HttpURLConnection над суперклассом URLConnection , который поставляется с поддержкой специфичных для HTTP функций. Чтобы получить HttpURLConnection объект, просто отлитый URLConnection экземпляр к HttpURLConnection .

    Затем, чтобы отправить запрос HTTP POST, передайте POST строковый литерал для setRequestMethod() метод HttpURLConnection объект. Это, без сомнения, лучшая альтернатива, чем полагаться на setDoOutput() метод URLConnection учебный класс.

    Это показано ниже:

    import java . io . BufferedReader ;
    import java . io . DataOutputStream ;
    import java . io . InputStreamReader ;
    import java . net . HttpURLConnection ;
    import java . net . URL ;
    class Main
    public static void main ( String [ ] args )
    URL url = new URL ( «https://postman-echo.com/post» ) ;
    String postData = «foo1=bar1&foo2=bar2» ;
    HttpURLConnection conn = ( HttpURLConnection ) url . openConnection ( ) ;
    conn . setRequestMethod ( «POST» ) ;
    conn . setDoOutput ( true ) ;
    conn . setRequestProperty ( «Content-Type» , «application/x-www-form-urlencoded» ) ;
    conn . setRequestProperty ( «Content-Length» , Integer . toString ( postData . length ( ) ) ) ;
    conn . setUseCaches ( false ) ;
    try ( DataOutputStream dos = new DataOutputStream ( conn . getOutputStream ( ) ) ) < dos . writeBytes ( postData ) ; try ( BufferedReader br = new BufferedReader ( new InputStreamReader ( conn . getInputStream ( ) ) ) ) String line ; while ( ( line = br . readLine ( ) ) != null ) < System . out . println ( line ) ; > catch ( Exception e ) < e . printStackTrace ( ) ;

    3. Использование Апача HttpClient API

    Если ваш проект открыт для внешних библиотек, рассмотрите возможность использования Apache HttpClient API для выполнения HTTP-методов. HttpClient внутренне обрабатывает один или несколько обменов HTTP-запросами/HTTP-ответами, необходимыми для успешного выполнения HTTP-метода. Ожидается, что пользователь предоставит объект запроса для выполнения, и HttpClient ожидается, что он передаст запрос на целевой сервер, вернет соответствующий объект ответа или выдаст исключение, если выполнение было неудачным.

    Вот простой пример, демонстрирующий, как мы можем использовать HttpClient API для отправки запроса HTTP POST. Пожалуйста, обратитесь к официальному Примеры HttpClient чтобы получить более глубокое представление обо всех функциях, предлагаемых этим модулем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *