IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   HTTP-функции в РНР (https://www.imho.ws/showthread.php?t=115671)

Sambotey 24.02.2007 23:32

HTTP-функции в РНР
 
Вывод информации PHP-скриптом в файл или в виде HTML-странички - дело распространенное. Мне же необходимо, чтобы РНР-скрипт передал некоторые данные (пусть, для примера, это будет строка) некоему приложению. Приложение написано на Javа, оно по протоколу НТТР передает РНР-скрипту данные, которые обрабатываются этим скриптом и результат отсылается Java-приложению. Передача параметров скрипту - дело не сложное, как и из HTML-формы браузера пользователя. Но вот как передать выходные параметры этому Java-приложению? Оно-то методами InputStream ждет входной поток, а как организовать эту передачу со стороны РНР? Вероятно, необходимо использовать функции с префиксом http_, в частности, http_send_stream, но документация по этим функциям очень скудна.(

EvroStandart 25.02.2007 16:50

А просто "печатать" ответ как на обычной странице не пробовал? На что вообще этот ответ похож?

shuron 25.02.2007 17:25

Обычный вывод как для вебстранички с помощью echo например
и поймает ваш Inputstream

ведь я так понял вы методом GET отсылаете параметры..

Sambotey 25.02.2007 21:13

ответ с помощью обычного echo сопровождается кучей заголовков. И все это передается в длинной последовательности символов, среди которых необходимо "выковырять" "полезную нагрузку". Это неудобно...
И среди функций РНР я обнаружил указанные выше функции, которые, как я понял, создают что-то вроде канала между РНР и удаленным приложением (открывается поток). Документации по этим функциям я почти не нашел, а примеров вообще не видел, вот и решил поинтересоваться, не знает ли кто-нибудь подробный механизм организации этого потока со стороны РНР.

aoxyz_30330 26.02.2007 04:38

Цитата:

ответ с помощью обычного echo сопровождается кучей заголовков.
ну дак протокол такой, хттп ... у него сначало идут заголовки а потом отделённый от них пустой строкой контент, то есть в принципе недолго отпарсить ...

ещё, не совсем понятно, что такое
Цитата:

и результат отсылается Java-приложению
это в смысле ява приложение ждёт вывода пхп-скрипта (если так - я бы склонился к выводу в формате хмл (domxml и иже с ним) ... в яве же всё это есть - парсинг хмл и прочее ... или написал бы на пхп вебсервис (смотри soap), а яву сделал бы его клиентом), или как оно отсылается?

если яваприложение сервер который постоянно ждёт входящих данных, то можно при небольшом знании протокола хттп из пхп подключица через сокеты или курл ... см. расширение curl (ето попроще) или Socket Functions ... можно также старые добрые Network Functions поковырять, в особенности fsockopen() ...

удачи ,)

shuron 26.02.2007 15:46

ну извините может есче ObjectStream получить хотите из ПХП? ;)
HTTP Headers не убрать насколько я знаю..
но можете их хоть подправить с помошью header() как вам надо.. http://de3.php.net/manual/ru/function.header.php

is_absent 26.02.2007 20:17

Sambotey,
Если работать с HTTP протоколом - заголовки там должны быть :-) иначе это уже не тот протокол будет...
Насколько я знаю, для Java есть достаточно много библиотек для работы с этим протоколом (достаточно использовать их, и проблема решится).
В этом случае, если переменные не сложные (скаляры) - их значения можно помещать прямо в заголовок (что-то вроде X-My-Variable: some-vvalue)
Если же нет желания использовать библиотеки - нужно менять протокол общения (на простое соединение по сокету, xml-rpc, soap). Что опять-таки повлечет использование дополнительных библиотек :)

Hubbitus 26.02.2007 20:46

Посмотрите в сторону XML-RPC, если SOAP много для Ваших задач. А XML-RPC прост, имеет кучу примеров, фронтенды как клиентов так и серверов имеются и для PHP и для Java на оффсайте и бесплатны.

добавлено через 4 минуты
Упс, не успел, упомянули раньше его, пока я писал.

Но:
Цитата:

Сообщение от is_absent (Сообщение 1364449)
Если же нет желания использовать библиотеки - нужно менять протокол общения (на простое соединение по сокету, xml-rpc, soap).

имел ввиду XML-RPC прежде всего поверх HTTP, чтобы быстро и просто, а не придумывать своих бинарных протоколов...


Часовой пояс GMT +4, время: 14:09.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.