Кто нибудь использовал в php - hessian binary web service protocol

confguru

ExAdmin
Команда форума
Гессенский наемник - освоен.
Кому интересно, юзать так.

PHP:
include_once 'HessianClient.php';
$options = new HessianOptions ();
$options->version = 1;
$options->detectVersion = false;
$options->typeMap = array ('UserBean' => 'User', 'UserInfo' => 'UserInfo' );
$testurl = 'https://passport';
$proxy = new HessianClient ( $testurl, $options );
try {
	$ret = $proxy->tryLogin ( 'demo', 'demo');
	var_dump ( $ret );
} catch ( Exception $ex ) {
	var_dump ( $ex );
}
 

tz-lom

Продвинутый новичок
этот hessian я так понимаю RPC с бинарным обменом?
сервис инициализируется каждый раз или демонизируется (из коробки)? соединение постоянное можно делать?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
tz-lom значение слов "binary web service protocol" определяет ответы на все твои вопросы: да, да, нет, нет
 

tz-lom

Продвинутый новичок
не знал что web service это обязательно разрывное соединение
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
web вообще - это http 1.х, в котором синхронность и односторонняя модель делают постоянство соединения бессмысленным, расширения вроде COMET - лишь оптимизация
 

confguru

ExAdmin
Команда форума
Версия протокола какая? Какой код ошибки?
Я вверху уже пример пример кода, который работает. Маппить объекты надо обязательно
 

fixxxer

К.О.
Партнер клуба
Учи протокол http. У тебя глупости отправляются, и в fsockopen вместо хоста у тебя URL.

Должно получаться так (выводи поначалу не в сокет а на экран)

fsockopen('demo.stor-m.ru', 80 ................)

GET /ArchiveServer/transport/DataService HTTP/1.1
Host: demo.stor-m.ru
....

И вообще, сначала получи что тебе нужно ручками телнетом, а как получится уже пиши код который делает то же самое.
 

confguru

ExAdmin
Команда форума
Валерий_har
Не кричи :)
See setCredentials() - что в нем?
Basic http authorization - делается внутри CURL
 

Валерий_har

Новичок
setCredentials() не пойдёт.
в документации написано, что в php5 уже не используют его.
вот и думаю, как мне отправить несчастные логин и пароль в http-форму...
 

tz-lom

Продвинутый новичок
Залезь глянь как работает CURL транспорт, посмотри как через CURL идёт авторизация и пойми куда нужно указывать твои логин/пароль
 

tz-lom

Продвинутый новичок
меньше слов больше дела , открой код транспортов хессиана и смотри в каком месте там вызвается curl_setopt , там будет некий массив доп параметров, который можно некоторым образом задать извне, и оные параметры передадутся курлу, это тебе и нужно
 

tz-lom

Продвинутый новичок
curl внутри hessian используется,тебе надо всего лишь правильно передать ему параметры
 
Сверху