powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / POST запрос через Jsoup
16 сообщений из 16, страница 1 из 1
POST запрос через Jsoup
    #39501700
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые знатоки.

пытаюсь сделать простой примерчик для обращения к сервису Яндекс SpeechKitCloud (распознавание речи через облако).
На сайте яндекса есть пример формата запроса, который я не очень понимаю

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import org.jsoup.Connection;
import org.jsoup.Jsoup;

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;

public class Recognize {

    public static void main(String[] args) throws IOException {

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        BufferedInputStream in = new BufferedInputStream(new FileInputStream("C:/Users/mi/Downloads/speech.wav"));
        int read;
        byte[] buff = new byte[1024];
        while ((read = in.read(buff))>0){
            out.write(buff,0,read);
        }
        out.flush();
        byte[] audioBytes = out.toByteArray();
        String mimeEncoded = Base64.getMimeEncoder().encodeToString(audioBytes);

        Connection.Response response = Jsoup.connect("Https://asr.yandex.net/asr_xml?" +
                "uuid=01ae13cb744638b58fb536ddd496daa" +
                "&key=<<мой ключ к яндексу>>" +
                "&topic=numbers" +
                "&lang=ru-RU HTTP/1.1")
                .header("Host","asr.yandex.net")
                .header("Content-Type","audio/x-wav")
                .header("Content-Length", String.valueOf(mimeEncoded.length()))
//                .data(mimeEncoded)
                .method(Connection.Method.POST).execute();
    }

}



в ответ на это получаю ошибку вида:
Код: plaintext
1.
2.
3.
4.
Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=400, URL=https://asr.yandex.net/asr_xml?uuid=01ae13cb744638b58fb536ddd496daa&key=<<мой ключ к яндексу>>&topic=numbers&lang=ru-RU%20HTTP/1.1
	at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:537)
	at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493)
	at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205)
	at Recognize.main(Recognize.java:34)

2 вопроса:
1. Куда совать в моем варианте запроса коде строку с аудиофайлом?
2. Из-за чего возникает ошибка?

оговорюсь, что я недоJunior

Спасибо.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501717
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
&lang=ru-RU HTTP/1.1
Пробел в запросе?
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501721
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett
Код: plaintext
&lang=ru-RU HTTP/1.1
Пробел в запросе?

Да. Но это уже окончательный вариант для оформления вопроса на форум, чтобы все выглядело как в их примере. Конечно же я и без пробела пробовал
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501722
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прогнать запрос через network developer console в браузере и посмотреть где отличия

смущает это одинокое HTTP 1.1 это есть часть параметра lang?
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501726
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfioHett
Код: plaintext
&lang=ru-RU HTTP/1.1
Пробел в запросе?

Да. Но это уже окончательный вариант для оформления вопроса на форум, чтобы все выглядело как в их примере. Конечно же я и без пробела пробовал
Думаю это нужно вообще убрать. Тут должен быть только адрес запроса с параметрами.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501727
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исключил HTTP/1.1
теперь в среде ошибка все та же, но если прохожу по ссылке, генерируемой в стаке, то браузер выдает сообщение:
Streaming clients must specify audio field!
куда тут совать строку с файлом?
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501728
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
llemingпрогнать запрос через network developer console в браузере и посмотреть где отличия

смущает это одинокое HTTP 1.1 это есть часть параметра lang?
можете чуть поподробнее? в web-е я знаю чуть более, чем ничего, но менее чем в java
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501732
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingсмущает это одинокое HTTP 1.1 это есть часть параметра lang?

Это ошибка. В примере приведена командная строка для программы CURL, а не строка HTTP запроса.

wolfio Из-за чего возникает ошибка?

Вам сообщается код HTTP 400. В справке по кодам HTTP видно, что это неправильный формат запроса.
Кроме ошибочного места размещения HTTP/1.1 (правильно в HTTP заголовке), ещё подозрительно начало строки запроса с большой буквы и &key=<<мой ключ к яндексу>>

1. Куда совать в моем варианте запроса коде строку с аудиофайлом?

Что за библиотека Jsoup... оказалась для разбора HTML файлов. В документации к ней посмотреть, как создавать POST запросы, если это возможно. Для них часто используется библиотека Apache HTTP Components. Можно сначала с помощью программы CURL добиться, чтобы операция с POST заработала, потом уж подставлять в свою программу параметры запроса.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501764
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант, можете также попробовать сначала через Postman, а потом okhttp
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501900
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Jsoup нашлась возможность посылки файла. Как именно - искать в google по словам jsoup post data
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501923
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,

Есть у меня подозрения что через Jsoup с пол-пинка не получится. Потому что Jsoup это (внимание!) Java HTML Parser. Ну, нет там всего для работы с HTTP API. Ему достаточно того что умеет браузер. А браузер файлы шлет через multipart POST запросы.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501931
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,

Вообще забавно. Зачем было сюда вообще Jsoup приплетать, если JSE API более чем достаточно?

Вот этот пример близок к тому что вам нужно
https://stackoverflow.com/a/3324964
Только установите свои заголовки и в OutputStream просто скопируйте свой файл. По-моему не нужно ничего кодировать.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39501935
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MВ Jsoup нашлась возможность посылки файла. Как именно - искать в google по словам jsoup post data
Вот только файлы туда заряжаются либо POST параметрами, либо в Multipart.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39502341
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczwolfio,

Есть у меня подозрения что через Jsoup с пол-пинка не получится. Потому что Jsoup это (внимание!) Java HTML Parser. Ну, нет там всего для работы с HTTP API. Ему достаточно того что умеет браузер. А браузер файлы шлет через multipart POST запросы.

Добавили в jsoap а может и было. Смысл видимо в том тчобы можно было парсить не строку а сразу из uri выкачать и распарсить. Правда как это поможет распарсить html парсером wav файл, скачаваемый в данном конкретном примере, и почему не воспользоваться банальным HttpURLConnection если нужно только скачать, непонятно.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39502355
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingДобавили в jsoap а может и было.

Кого добавили? Там есть относительно новый метод rawBody или rawData, но он тоже хочет строку, а не бинарый контент.

llemingСмысл видимо в том тчобы можно было парсить не строку а сразу из uri выкачать и распарсить. Правда как это поможет распарсить html парсером wav файл, скачаваемый в данном конкретном примере, и почему не воспользоваться банальным HttpURLConnection если нужно только скачать, непонятно.
Что-то ты по-моему совсем не вкурил. Тут нет задачи парсить HTML в принципе. Тут вообще HTML-я нет. Нигде. Есть HTTP API для отправки файлов на анализ. Он возвращает XML. Обычный REST сервис. Задлянафига с ним работать через HTML парсер знает только автор вопроса.
...
Рейтинг: 0 / 0
POST запрос через Jsoup
    #39503148
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Да просто подумал что возьму Jsoup для скорости, т.к. с ним более менее знако, в отличие от коннекта HTTP. Там в результате парсить то и нечего по большому счету. файл с 3-5 строками.

вопрос потерял актуальность после вопроса, прошу извинить. почитатл про условия использования яндекс сервиса и как-то передумал :\
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / POST запрос через Jsoup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]