![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Привет! Я отправляю HTTP запрос из приложения на Delphi, которое является клиентом на cgi -скрипт на Perl. Запрос имеет аргументы name - имя файла и login - имя пользователя. Нужно, чтобы скрипт переместил файл name в папку ../login/ которая уже была создана.
Для перемещения файлов я использую функцию move модуля File::Copн: move("../Papka/$in{name}", "../$in{login}/$in{name}"; print "Content-type: text/html\n\n"; #------------------------------------------------------------------------------- Проблема в том, что файл не копируется! Если в строке браузера вызвать скрипт - всё ок! Но если вызывать из Delphi (используется компонент Indy), то файл ПРОСТО не копируется, хотя АБСОЛЮТНО совпадают как запросы, так и функции move. Привожу выдержку из лог-файла: 83.237.63.58 - - [11/Jul/2006:23:42:34 +0400] "GET /cgi-bin/move.cgi?name=power.mp3&login=hitman HTTP/1.1" 200 5 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" - из браузера 83.237.63.58 - - [11/Jul/2006:23:43:04 +0400] "GET /cgi-bin/move.cgi?name=power.mp3&login=hitman HTTP/1.1" 200 5 "-" "Mozilla/3.0 (compatible; Indy Library)" - из Делфи как видно, запросы одинковы, но в первом случае файл копируется, во втором - нет. Очень прошу Помочь. Заранее спасибо! Код на Делфи такой:
Очень прошу помочь! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Добавлено @ 13:13 Не может быть одинаковых GET запросов, если ты из браузера отправляешь GET, а из дельфи POST |
|||
|
||||
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Из Делфи отправляю с помощью Post. В логах был Get - потому что пробовал и Get-ом и Post-ом. Всё равно НЕ РАБОТАЕТ.
Snowy - resp := IdHTTP1.Post('http://adres/cgi-bin/move.cgi',LoginInfo,Response); а Response - забыл вставить в список переменных? Как быть? ЗЫ: Точнее Reponse там вообще не нужен =) Это сообщение отредактировал(а) inside - 12.7.2006, 13:25 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Угу. Забыл убрать.
Попробуй так:
|
|||
|
||||
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
- я там их такой функцией копирую. Уже всё перепробовал. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Причем тут кодировка, если ты не используешь ни русских символов, ни пробела.
Попробуй логировать в файл то, что получает cgi скрипт и сравнить разницу. И какую строку ты пишешь в браузере, что у тебя всё проходит? |
|||
|
||||
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
В файл писал лог - сохранял запрос - они в точности одинаковы, если отправлять из Делфи или из браузера. Из браузера я просто пишу http://www.adress.ru/cgi-bin/move.cgi?name...;login=nickname
И всё копирует. Уже была мысль вызвать браузер из проги, а выходным данным скрипта послать комманду закрытия окна, так что оно будет открыаться и сразу закрываться. Но это конечно криво. Надо разобраться почему не копирует. Это сообщение отредактировал(а) inside - 12.7.2006, 16:19 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Ну, если запросы идентичны, значит дело не в дельфи, а в скрипте.
Может там проверка на клиента идет... Попробуй прописать строку клиента, как у IE. |
|||
|
||||
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
83.237.63.56 - - [12/Jul/2006:17:37:15 +0400] "GET /cgi-bin/move.cgi?name=demon.mp3&login=miracle HTTP/1.1" 200 5 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" (из программы - файл не копируется) 83.237.63.56 - - [12/Jul/2006:17:37:34 +0400] "GET /cgi-bin/move.cgi?name=demon.mp3&login=miracle HTTP/1.1" 200 5 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" (из браузера - файл копируется удачно) Люди, выручайте - что делать? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Права тут не при чем.
Запрос он и есть запрос. Разве что у тебя к скрипту не напрямую обращается... Тогда поставь HandleRedirect в true. |
|||
|
||||
| inside |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Изменил - ноль....
|
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
|
||||
|
|||||
| inside |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Вот так сделал =)
Опять же - если браузер - вижу ok, если прога - shit! Хм... уже что-то.... хотя сама функция вот такая:
Пойди разберись, где именно она ноль вернула |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
нет, пусть вернёт именно "../$in{login}/$in{name}\n\n"
Может именно тут разница зарыта. Добавлено @ 17:36 И сниферни или пропусти через мапер весь заголовок запроса, а не только GET |
|||
|
||||
| inside |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
это я уже проверял - сохранял в лог, как выглядят функции move при подстановке значений переменных - абсолютно одинаково.
Как это сделать - я не знаю - объясни - обязательно займусь |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |