Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > вопрос по HTTP::Request |
Автор: sPhoenix 21.11.2008, 21:57 |
допустим через HTTP::Daemon принимается http-запрос. методом get_request() его можно представить в виде HTTP::Request если потом вызвать метод as_string() то вроде как я должен буду получить исходный запрос. Но дело в том что он довольно таки сильно искажается. 1. В http-заголовке все переносы строки \x0D\x0A преобразуются в \x0A, а некоторые сервера отказываются принимать такой запрос. но исправить заголовок обратно несложно и все работает. 2. Следующая проблема в POST запросе для аплоада файлов. запрос изменяется достаточно сильно и никакие веб-сервера его более не принимают, причем искажается и содержимое файлов. есть ли способы как-нибудь изъять весь http-запрос неповрежденным? заранее спасибо. |
Автор: tolkien 22.11.2008, 01:42 |
Отправляйте запрос через проксю и смотрите ее логи |
Автор: sPhoenix 22.11.2008, 16:36 | ||
попытался сравнить POST-запрос (аплоад файла), который возвращает метод as_string() с POST-запросом, полученным через сокеты, но в чем причина различий не обнаружил: 1. то что описывал - \x0A вместо \x0D\x0A 2. изменен порядок следования строк в HTTP-заголовке Тем не менее почему-то запрос, полученый через сокеты и перенаправленный на веб-сервер работает отлично. Если больше советов не будет наверно оставлю этот способ... хотя скрипт будет красивее если использовать HTTP::Daemon. Но теперь у меня возникла другая проблема - как через сокеты оптимальнее всего получать HTTP-запрос? Я сделал так:
но мне кажется что это не очень правильно. Что скажете? |