LINUX.ORG.RU

Как сформировать такой запрос

 


0

1

Есть сайт на котором чат. Для присутствия в чате требуется постоянно отправлять post запрос вида

<body rid='2585663780' xmlns='http://jabber.org/protocol/httpbind' sid='529d9a1a34f1ce25da79b2a2413a6cb92d592a79'/>

Я так понял простой $ua->request($site); за меня этого не сделает?

где парсить рид и сид, там на сервер джабера не законектится..



Последнее исправление: reddim (всего исправлений: 2)

post запрос вида

В смысле тело запроса состоит из указанной строки? И всё? Ну вызывай как $ua->post($url, Content => $content); где в $content твоя строка.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

Там каждый раз новый rid и sid фомируется

helios не понял, все же можно без парсинга? я пробовал просто request не работает.

Вот для наглядности, там тестовый акк и сам сайт. http://pastebin.com/qAbaBCFu

Как открываешь вкладу чата идут такие запросы

http://s2.ipicture.ru/uploads/20130403/F8iVva3X.jpg

Если просто зайти и не слать запросы, чат не отображается

reddim
() автор топика
Ответ на: комментарий от reddim

При чём тут парсинг? Я так понимаю, у тебя стоит задача генерации rid и sid? Или откуда вообще они должны взяться?
И в запросе ты так и пиши - Content => q{<body rid=" sid=" xmlns="/>}
Откуда брать rid и sid это от сайта зависит. Может он их отдаёт?

PS Долбанные кавычки.

Xellos ★★★★★
()
Последнее исправление: Xellos (всего исправлений: 1)
Ответ на: комментарий от Xellos

всмысле так что ли

while (1){
     
    my $RREQ = POST $site,
     
    'Content_Type' => 'text/xml; charset=UTF-8',
    'Content'        => [
    '<body rid'      => '1024656049',
    'xmnlns'         => 'http://jabber.org/protocol/httpbind',
    'sid/>'          => '0232be5eaa4902a96456b4c08b5de531c39a8b8',
                      ];   
my $r=$ua->request($RREQ); }

Не работает конечно же)

reddim
() автор топика
Ответ на: комментарий от reddim

БЛДЖАД!

my $RREQ = POST $site,
    'Content_Type' => 'text/xml; charset=UTF-8',
    'Content'      => q{<body rid='1024656049' xmnlns='http://jabber.org/protocol/httpbind' sid='0232be5eaa4902a96456b4c08b5de531c39a8b8'/>};
Xellos ★★★★★
()
Ответ на: БЛДЖАД! от Xellos

Ну вы сами попробуйте, после этого запроса сохранить в файл исходник, там чата не будет, т.е он не верен

reddim
() автор топика
Ответ на: комментарий от reddim

Может rid и sid неправильные. Может ваши предположения о запросе неверные. Может ему кавычки двойные нужны.
Но поставленная вами задача - передать запрос - решается так.

Xellos ★★★★★
()

Если догадка верна, то задача стоит так:

1. При первом заходе клиенту выдается куки с session id, sid. Не важно есть перед этим авторизация или нет.

2. request id, rid может вычисляться как угодно.

3. Клиент читает данные из кукисов, генерирует rid и отсылает серверу.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

sid разный в запросах (так что в куках нечего смотреть) Ладно оставлю это, слишком заморочено для меня (:

reddim
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.