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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Посылка POST-запроса на Java, При попытке получить ответ - ошибка 403 
:(
    Опции темы
NAV
Дата 31.7.2004, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нашел в Инете пример посылки POST-запроса cgi-скрипту (в д.с. - perl). Посылать вроде посылает, но когда пытаюсь создать поток для чтения ответа (input = new DataInputStream(urlConn.getInputStream());), возникает exception: 403 forbidden для такого-то скрипта... Причем у скрипта установлены права 777. В чем же дело?
PM MAIL   Вверх
Domestic Cat
Дата 31.7.2004, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



По-моему, нужны 755.


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

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


Новичок



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

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



sad.gif
Нет, все равно то же самое...
Я даже на всякий случай методы поменял - в jdk 1.4 encode с одним параметром - deprecated, добавил второй, кодировку... Но все без толку.
PM MAIL   Вверх
Sun
Дата 3.8.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



А что происходит при запуске скрипта из броузера? Тоже 403 ошибка?


--------------------
Account removed
PM MAIL   Вверх
NAV
Дата 4.8.2004, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, тоже была ошибка 403.

Но я решил пойти другим путем: заменил "примерочный" скрипт своим (тем более, что в Perl я пока не особо разбираюсь).

В результате получилось такое:
Код

try {
           URL url;
           HttpURLConnection urlConn;
           DataOutputStream printout;
           BufferedReader input;
           url = new URL(getCodeBase().toString() + "getit.php");
           urlConn = (HttpURLConnection)url.openConnection();
           urlConn.setDoInput(true);
           urlConn.setDoOutput(true);
           urlConn.setUseCaches(false);
//            urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
           urlConn.setRequestMethod("POST");
           printout = new DataOutputStream(urlConn.getOutputStream());
           String content = "name=" + URLEncoder.encode("Sasha", "UTF-8") +
           "&email=" + URLEncoder.encode("[email protected]", "UTF-8");
           printout.writeBytes(content);
           printout.flush();
           printout.close();

//  !!! здесь возникает NullPointerException!

           filenameField.setText(Integer.toString(urlConn.getResponseCode()));

//  !!! ----------------------------------------------------------

         }
         catch(MalformedURLException me) {
          System.err.println("MalformedURLException: " + me);
         }
         catch(IOException ioe) {
          System.err.println("IOException: " + ioe.getMessage());
         }


Причем пробовал уже и обычный URLConnection использовать - без толку. Но ведь коннекшн сам создается? В чем же тогда дело?

Кстати, сам скрипт getit.php такой:

<?php
print("ok, ".$_POST["name"].", now I've got your e-mail. It is ".$_POST["email"]);
?>

Это сообщение отредактировал(а) NAV - 4.8.2004, 13:29
PM MAIL   Вверх
Sun
Дата 4.8.2004, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



Мне кажется что прежде чем получать код возврата, тебе следует вычитать из входного потока ответ от вэб-сервера
Код

BufferedReader in = new BufferedReader(new InputStreamReader (urlConn.getInputStream()));
String line;
while((line = in.readLine()) != null) {
// do something with line
...
}
in.close();
// а уже потом дернуть
filenameField.setText(Integer.toString(urlConn.getResponseCode()));



--------------------
Account removed
PM MAIL   Вверх
NAV
Дата 4.8.2004, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Sun
Не получается. Я прежде пробовал так делать - получить что-то из line в текстовую область. Тогда указывает на этот самый line и вновь - NullPointerException. Где же зарыта собачка? butbut.gif
PM MAIL   Вверх
NAV
Дата 7.8.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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