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


Вот так в HTML мы формируем наш запрос (правильный вариант)
Код: html
1.
2.
3.
4.
5.
6.
7.
<form target="pole" id="transcribe" action="http://MySite.com/transcription777/" method="POST">
            <textarea id="text_to_transcribe" name="text_to_transcribe" required="required">Передаем текст</textarea>
            <input type="radio" name="output_dialect" value="br" >TEST 


            <input  id="submit" name="submit" type="submit" value="Отправить запрос" />
    </form>






Вот так я передаю запрос без параметров и могу получить данные ( ВОПРОС: как передать с параметрами запрос, так как это мы сделали в HTML):
Код: 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.
private static String getContent() throws IOException {
        BufferedReader reader=null;
        try {
            URL url=new URL("http://MySite.com/transcription777/");
            HttpURLConnection c=(HttpURLConnection)url.openConnection();
            
            //заголовки (пока не использую)
              /*
               * //conn.setRequestProperty("Charsert", "UTF-8");
		  //conn.setRequestProperty("content-type","text/html");
		  //conn.setRequestProperty("Content-type", "application/x-java-serialized-
               * 
               */
            
            c.setRequestMethod("POST");
            c.setReadTimeout(10000); 
            c.setDoOutput(true);
            c.connect();
            
            OutputStream output = c.getOutputStream();
                
            reader= new BufferedReader(new InputStreamReader(c.getInputStream()));
            
            StringBuilder buf=new StringBuilder();
            String line=null;
            while ((line=reader.readLine()) != null) {
                buf.append(line + "\n");
                System.out.println("buf "+line);
            }
            return(buf.toString());
        }
        finally {
            if (reader != null) {
                reader.close();
            }
        }
    }
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39043802
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть отправить запрос, как будто мы уже нажали кнопку submit



Код: html
1.
2.
3.
4.
5.
6.
7.
<form target="pole" id="transcribe" action="http://MySite.com/transcription777/" method="POST">
            <textarea id="text_to_transcribe" name="text_to_transcribe" required="required">hello</textarea>
            <input type="radio" name="output_dialect" value="br" >TEST&nbsp;


            <input  id="submit" name="submit" type="submit" value="Отправить запрос" />
    </form>
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39043841
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос, как обычно обрабатывают данные или как можно их обработать?
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39043928
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39043934
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
Спасибо, но мне нужно именно HttpURLConnection
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39043944
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а как обычно обрабатывают данные, если пришла HTML страничка и мне нужно вывести определенное значение определенного класса?
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044008
Фотография nb_brain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НикоДимиден,

Нагуглил за полторы минуты :) тынц

Там усе есть:

сначала там делается лист с параметрами:
Код: java
1.
2.
3.
4.
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));



потом Во writter они пишутся как стринга таким вот методом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}




Вообще гугл крутая штука ;)
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044132
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nb_brainНикоДимиден,

Нагуглил за полторы минуты :) тынц

Там усе есть:

сначала там делается лист с параметрами:
Код: java
1.
2.
3.
4.
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));



потом Во writter они пишутся как стринга таким вот методом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}




Вообще гугл крутая штука ;)

Сравнил HttpClient с HttpURLConnection и сделал вывод что HttpClient удобнее.
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044272
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nb_brainНикоДимиден,

Нагуглил за полторы минуты :) тынц

Там усе есть:

сначала там делается лист с параметрами:
Код: java
1.
2.
3.
4.
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));



потом Во writter они пишутся как стринга таким вот методом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}




Вообще гугл крутая штука ;)

А обязательно это делать с использование этого класса - BasicNameValuePair ? Этот класс из библиотеки Апач , просто даже не понятно что и где нужно качать что бы можно было использовать этот класс ?
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044276
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что этот класс делает BasicNameValuePair? И где можно узнавать подобную информацию что бы было нормально описано с примерами как справочник по MQL4/MQL5?
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044331
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nb_brainНикоДимиден,

Нагуглил за полторы минуты :) тынц

Там усе есть:

сначала там делается лист с параметрами:
Код: java
1.
2.
3.
4.
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));



потом Во writter они пишутся как стринга таким вот методом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}




Вообще гугл крутая штука ;)


Спасибо, получилось. Я не ожидал что нужно будет столько много манипуляций совершить, что бы добавить простое тело запроса. Куда проще использовать httpClient. Не могли бы Вы ответить на мои вопросы, которые я задал? Для меня важно понять как все работает изнутри и остальное то что я написал в качестве вопроса.
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044338
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nb_brain,
Так а как обычно обрабатывают ответ, если приходит HTML страничка? Допустим мне нужно значение какого то одного класса.
Или что, перебирать все символы на определенное совпадение и вытаскивать значение таким образом? Так мне не очень нравитсья, хотя работать будет, я уже такое делал.
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044448
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда берем html парсер и парсим страничку выковыривая DOM элементы. Если ответ сервера валидная xhtml страница то тут все проще. Если чистый html то берем какой нибудь парсер и пробуем распарсить страницу. JSOUP говорят неплохо парсит даже html.
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044520
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingТогда берем html парсер и парсим страничку выковыривая DOM элементы. Если ответ сервера валидная xhtml страница то тут все проще. Если чистый html то берем какой нибудь парсер и пробуем распарсить страницу. JSOUP говорят неплохо парсит даже html.
Во ! Спасибо! Замечательно, все работает как швейцарские часы!)
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39044586
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НикоДимиденА что этот класс делает BasicNameValuePair? И где можно узнавать подобную информацию что бы было нормально описано с примерами как справочник по MQL4/MQL5?
BasicNameValuePair тут совсем не обязателен. Можно, например, обойтись таблицей
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Map<String,String> params = new HashMap<String,String>();
params.put("firstParam", paramValue1);
params.put("secondParam", paramValue2);
params.put("thirdParam", paramValue3);
// и точно так же
for (Map.Entry<String, String> entry: params.entrySet()) {
	builder
	.append(builder.length()==0?"":"&")
	.append(URLEncoder.encode(entry.getKey(),"utf-8"))
	.append("=")
	.append(URLEncoder.encode(entry.getValue(),"utf-8"));
}
...
Рейтинг: 0 / 0
HttpURLConnection + POST
    #39045395
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraНикоДимиденА что этот класс делает BasicNameValuePair? И где можно узнавать подобную информацию что бы было нормально описано с примерами как справочник по MQL4/MQL5?
BasicNameValuePair тут совсем не обязателен. Можно, например, обойтись таблицей
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Map<String,String> params = new HashMap<String,String>();
params.put("firstParam", paramValue1);
params.put("secondParam", paramValue2);
params.put("thirdParam", paramValue3);
// и точно так же
for (Map.Entry<String, String> entry: params.entrySet()) {
	builder
	.append(builder.length()==0?"":"&")
	.append(URLEncoder.encode(entry.getKey(),"utf-8"))
	.append("=")
	.append(URLEncoder.encode(entry.getValue(),"utf-8"));
}



ТОчно! Нам же главное перекодировать URLEncoder.encode(entry.getKey(),"utf-8") в шеснадцатеричную систему и вставить амперсанд вместо знака равно в соответствии с application/x-www-form-urlencoded. Хорошо! Спасибо!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / HttpURLConnection + POST
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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