Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача данных методом post, как сделать! 
:(
    Опции темы
jer1
Дата 24.5.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: нет
Всего: 5



как известно, данные от html-формы на сервер идут через get или post методы
с get почти всё понятно (в урл есть и адрес и параметры, передающиеся на сервер)

а вот как заполнить и отослать данные через пост метод
вот например регистрация нового участника
и я хочу добавить програмно n-пользователей (чтоб Коть сделать приятно smile )

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

спасибо


--------------------
:w!q
PM MAIL   Вверх
Domestic Cat
Дата 24.5.2005, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172




Цитата(jer1 @ 24.5.2005, 01:00)
(чтоб Коть сделать приятно smile )

smile

Вообще-то конкретно по вопросу вот:
http://javaalmanac.com/egs/java.net/Post.html

Но скорее всего для задачи этого недостаточно, т.к. сервер скорее всего начинает с отсылки куков которые ему нужно возвращать, в т .ч после аутентификации.


--------------------

PM   Вверх
Zandr
Дата 3.10.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: нет
Всего: 13



Можно посмотреть в сторону jakarta commons httpClient
PM MAIL   Вверх
KostenkoSergey
Дата 4.11.2005, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 1
Всего: 8



Или я не аъехал в суть вопроса - или вот : smile
Код

      String data = "";
      data += "&terminal_id="           + URLEncoder.encode("BES00001"   , "UTF-8");
      data += "&terminal_password="     + URLEncoder.encode("forBES00001", "UTF-8");
      data += "&Request.CLIENT_SYSTEM=" + URLEncoder.encode("proInfo1000", "UTF-8");
      data += "&card_pan="              + URLEncoder.encode("6764774630593013", "UTF-8");
      data += "&card_expdate="          + URLEncoder.encode("4912", "UTF-8");
      //java.net.Authenticator.setDefault(new MyAuthenificator());
      URL url = new URL("http://localhost:8080/jsp-examples/mercury/");
      HttpURLConnection urlConnect = (HttpURLConnection)url.openConnection();
      urlConnect.setRequestMethod("POST");
      urlConnect.setDoOutput(true);
      urlConnect.setDoInput(true);
      OutputStreamWriter wr = new OutputStreamWriter(urlConnect.getOutputStream());
      wr.write(data);
      wr.flush();
      // --- get the response
      BufferedReader is = new BufferedReader(new InputStreamReader(urlConnect.getInputStream()));
      String line;
      StringBuffer sb = new StringBuffer();
      while((line = is.readLine()) !=null){
          System.out.println(line);
          sb.append(line);
        }
    } catch (Exception e) {
      e.printStackTrace();
    }

PM ICQ   Вверх
Andyb
Дата 13.12.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 7.6.2004
Где: Lille, France

Репутация: 1
Всего: 5



Можно ещё так-
метод:
Код

public static String doPost(String urlString, Map<String, String> nameValuePairs) 
      throws IOException
   {  
      URL url = new URL(urlString);
      URLConnection connection = url.openConnection();
      connection.setDoOutput(true);

      PrintWriter out = new PrintWriter(connection.getOutputStream());

      boolean first = true;
      for (Map.Entry<String, String> pair : nameValuePairs.entrySet())
      {  
         if (first) first = false; 
         else out.print('&'); 
         String name = pair.getKey();
         String value = pair.getValue();
         out.print(name);
         out.print('=');
         out.print(URLEncoder.encode(value, "UTF-8"));
      }

      out.close();

      Scanner in;
      StringBuilder response = new StringBuilder();
      try
      {  
         in = new Scanner(connection.getInputStream());
      }
      catch (IOException e)
      {  
         if (!(connection instanceof HttpURLConnection)) throw e;
         InputStream err
            = ((HttpURLConnection)connection).getErrorStream();
         if (err == null) throw e;
         in = new Scanner(err);
      }
      while (in.hasNextLine())
      {
         response.append(in.nextLine());
         response.append("\n");
      }

      in.close();
      return response.toString();
   }

его вызов:
Код

new Thread(new 
                  Runnable()
                  {
                     public void run()
                     {   
                        final String SERVER_URL = "http://localhost/test";
                        result.setText("");
                        Map<String, String> post = new HashMap<String, String>();
                        post.put("paremeter1", "1");
                        post.put("paremeter1", "2");
                        post.put("paremeter1", "3");
                        try
                        {
                           System.out.println(doPost(SERVER_URL, post));
                        }
                        catch (IOException e)
                        {
                          System.out.println("" + e);
                        }
                     }
                  }).start();

--------------------
 Большинство наших ошибок происходит из-за невнимательности.
PM ICQ   Вверх
ShurikA
Дата 13.12.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Проще всего пихать в OutPutStream, созданный с помощю Socket, стринг из всего что ты хочешь отослать в POST Script.
Создавать этот стринг нужно по стандарту MIME. Информацию на эту тему можно наити простым поиском.
После чего сам POST Script читает эту форму как обычную HTML Form smile Удачи!

Вот одна из ссылок на MIME: http://www.mindspring.com/~mgrand/mime.html
Добавлено @ 15:45
Цитата(jer1 @ 24.5.2005, 09:00)
с get почти всё понятно (в урл есть и адрес и параметры, передающиеся на сервер)

а вот как заполнить и отослать данные через пост метод


На самом деле технический со стороны клиента это тоже самое, кроме того что get заменяется на post smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.