powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / передача параметров методом POST / GET из java
19 сообщений из 19, страница 1 из 1
передача параметров методом POST / GET из java
    #34905213
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет,
коллеги подскажите плз.
надо сделать чтоб апплет создавал и записывал на сервере файлы.
Т.к. на прямую это не реализуемо, то решил пойти путем

Код: plaintext
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.
	 public   static   void  write(){
		String title="test.txt";
		
		String urlS = "http://localhost/writer.php";
		 try  {
			//String stringToReverse = URLEncoder.encode(msg, "UTF-8");

			URL url =  new  URL(urlS);
			URLConnection connection = url.openConnection();
			connection.setDoOutput(true);

			OutputStreamWriter out =  new  OutputStreamWriter(connection
					.getOutputStream());
			
			out.write("title=" +title);
			out.close();
			System.out.println("ok");
		}  catch  (UnsupportedEncodingException e) {
			e.printStackTrace();
		}  catch  (MalformedURLException e) {
			e.printStackTrace();
		}  catch  (IOException e) {
			e.printStackTrace();
		}
	}
это мой скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?php
	$filename=$_POST["title"];
	//$filename=$_GET["title"];

	echo "i have recieved a title: ".$filename;
	
	//$handle=fopen($filename,"w");
	$handle=fopen($filename,"w");

	 // Записываем что то в наш открытый файл.
	 $somecontent="Hello world !";
      if  (fwrite($handle, $somecontent) == FALSE) {
         echo "<br>Не могу произвести запись в файл ($filename)";
         exit;
     }
     
     echo "<br>Ура! Записали <$somecontent> в файл <$filename>";
?>

проблема в том, что вообще никакой реакции не наблюдаю. Т.е. метод write() выполняется, никаких ошибок не вываливается, но на сервере ничего не появляется.
А вот когда в ручную обращаюсь через браузер (при этом в скрипте раскомментирую $filename=$_GET["title"]) - все работает.

помогите плз разобраться
спасибо
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34905237
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафик нам твой PHP?
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34905306
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологНафик нам твой PHP?
хорошо, каким способом иначе создать файл на сервере ?

PS
сервер апаче. имеим возможность только положить страницу в предоставленную папку.
то что я делаю с localhost - это пытаюсь отработать решение вопроса.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34905323
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Content-Length не указали, запрос методом POST выходит кривым с точки зрения HTTP, также отсутствует в запросе информация о способе кодирования данных, т. е. заголовок Content-Type
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34905713
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovContent-Length не указали, запрос методом POST выходит кривым с точки зрения HTTP, также отсутствует в запросе информация о способе кодирования данных, т. е. заголовок Content-Type

спасибо, что ответили,
но я честно сказать не совсем уверен что проблема сокрыта в этом.
У меня такие соображения: В принципе можно, вообще в скрипте игнорировать всякие входящие параметры - просто если этот скрипт вообще вызывается, то сгенерировать любой файл на сервере. Однако этого не происходит. Вот это и смущает.
Я в коде явно указал что нужно выполнять
Код: plaintext
1.
String urlS = "http://localhost/writer.php";
writer.php лежит в корне.

или может я ошибаюсь
?
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34905810
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadetили может я ошибаюсь?

как я понял, если Вы из апплета отправляете запрос методом GET, то серверный скрипт срабатывает?


отсутствие заголовка Content-Length не позволяет PHP корректно обрабатывать POST запросы
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34906923
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте HttpClient.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907158
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov

как я понял, если Вы из апплета отправляете запрос методом GET, то серверный скрипт срабатывает?



в том то и проблема, что скрипт вообще не срабатывает.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907200
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet Kachalov

как я понял, если Вы из апплета отправляете запрос методом GET, то серверный скрипт срабатывает?



в том то и проблема, что скрипт вообще не срабатывает.

посмотри логи апача, может та увидешь, как именно он на твой запрос ругается
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907514
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen
посмотри логи апача, может та увидешь, как именно он на твой запрос ругается
я нашел такой файл
/var/log/apache2/access_log
в котором есть запись:
Код: plaintext
:: 1  - - [ 31 /Oct/ 2007 : 11 : 34 : 12  + 0100 ] "GET /writer.php?title=test.txt HTTP/1.1"  200   102  "-" "Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.2 (like Gecko)"

но это как раз тот случай когда я в ручную в поле адреса ссылаюсь на скрипт и вписываю параметры. А вот из ява-класса вообще тишина.
У меня такое подозрение: я просто создал класс для теста без всякого наследования JApplet и запускаю его из main. Может это быть причиной ?
Хотя с другой стороны я для теста в том же классе создал метод для чтения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public   static   void  read()  throws  Exception {
        URL locUrl =  new  URL("http://localhost/");
        URLConnection yc = locUrl.openConnection();
        BufferedReader in =  new  BufferedReader(
                                 new  InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

         while  ((inputLine = in.readLine()) !=  null ) 
            System.out.println(inputLine);
        in.close();
    }
так вот он мне читает и выводит содержимое index.html
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907601
kest_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet
я нашел такой файл
/var/log/apache2/access_log


а error_log пустой?

А вообще отладка тебе поможет. Запусти например нужный код не из аплета, а просто локально. Лучше под отладчиком.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907803
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String title="test.txt";
String urlS = "http://localhost/writer.php&title="+title;
URL url = new URL(urlS);
URLConnection connection = url.openConnection();

это и есть GET запрос
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34907939
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака ШариковString title="test.txt";
String urlS = "http://localhost/writer.php&title="+title;
URL url = new URL(urlS);
URLConnection connection = url.openConnection();

это и есть GET запрос

проблема в том, что скрипт (writer.php) на стороне сервера вообще не вызывается

kest_ru
а error_log пустой?

ошибок не содержит:
Код: plaintext
1.
[Wed Oct  31   12 : 08 : 20   2007 ] [notice] Apache/ 2 . 0 . 54  (Linux/Suse) configured - resuming normal operation
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908121
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он не может не вызываться т.к. в логе есть запись со статусом 200 (т.е. получение заголовка без тела)

попробуй просто,

<?php
echo "test";
?>

и ответ от него прочитай (while ((inputLine = in.readLine()) != null) ...)
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908528
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шарикови ответ от него прочитай (while ((inputLine = in.readLine()) != null) ...)
хм.
я очень смущен.
после того как я вписал while для чтения ответа, сразу все заработало - скрипт вызывается и файл создается.

почему без опроса он не работал?
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908577
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он работает. При чтение тела апач запускает скрипт и отдаёт результат.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908704
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шариковон работает. При чтение тела апач запускает скрипт и отдаёт результат.

большое спасибо. Get-метод я отработал. Теперь буду Post-метод отрабатывать.
Мне не ясно следующее. Каким образом я должен указать длинну передаваемых данных -
Content-Length ?
В JApplet я не нашел ничего подходящего. Если длинну данных вычислять самомтоятельно, то в любом случае при передаче Post-методом ее надо где то указывать?

PS
я извиняюсь за неграмотность, в этой области я еще не работал.
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908767
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadetКаким образом я должен указать длинну передаваемых данных -
Content-Length ?
- наконец то "правильный" вопрос - как? :)

Код: plaintext
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.
 public   void  send(String login,String password){
		 try {
			URL theURL= new  URL("http://localhost:8080/servlet/PostServlet");
			URLConnection connect=theURL.openConnection();
			connect.setUseCaches(false);
			connect.setDoOutput(true);
			
			String data="login="+URLEncoder.encode(login)+"&password="+URLEncoder.encode(password);
			connect.setRequestProperty("Pragma","no-cache");
			connect.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
			connect.setRequestProperty("Content-length",Integer.toString(data.length()));
			PrintStream out= new  PrintStream(connect.getOutputStream());
			out.println(data);
			out.flush();
			out.close();	
			
			BufferedReader in= new  BufferedReader( new  InputStreamReader(connect.getInputStream()));
			String line= null ;
			 if ((line=in.readLine())!= null ){
				System.out.println(line);
				...
			}
			in.close();
		} catch (Exception ex){
			System.err.println(ex);
		}
	}
...
Рейтинг: 0 / 0
передача параметров методом POST / GET из java
    #34908952
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Kachalov
Большое спасибо за конструктивную поддержку.

Большое всем спасибо

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


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