Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в TIdHTTPServer   Найти похожие ветки 

 
Добежал   (2008-12-09 11:30) [0]

Странный глюк в TIdHTTPServer, если в запросе есть и GET, и POST-данные. Картинка:

http://pic.ipicture.ru/uploads/081209/954A2LW4CN.jpg

В нераспарсенных параметрах видно, что идут POST-данные, потом перевод строки и идут GET-данные.
Соответственно, в распарсенных параметрах ARequestInfo.Params последний параметр выявляется неправильно, к последнему POST-данному прибавляются GET-данные. А если GET-параметров несколько - то в результате получается увеличение количества параметров.

Пример:

- имеем POST-данные такие: action=send&id=1
- имеем GET-данные: /?page=4

В результате, в ARequestInfo.Params окажется 2 записи:

1) action=send
2) id=1#13#10page=4

Что, естественно, неверно. Последнее POST-данное слилось с GET-данными. И так происходит всегда.

Вопрос - кто сталкивался с таким глюком, как лечить? Используется Indy от D7. Обновлять сам Indy не очень хочется, подозреваю в дальнейшем кто-то может откомпилить на опять дефолтном дельфи - и встретит такие грабли, что потом запаришься разбираться.

Судя по всему, просто буду вручную парсить POST-параметры. Но хочу точный алгоритм:

1) нужно выделить строку от первого символа (или предыдущего параметра) до знака амперсанда "&" (или конца строки)

2) в этой строке должен быть символ равно "=". До него стоит название параметра, после него стоит значение параметра.

3) над названием параметра и значением параметра нужно провести преобразование по некоему алгоритму, чтобы превратить в win-1251 символы.
Где в indy этот алгоритм преобразования? По-моему, где-то должен быть... Чтобы все было НАИБОЛЕЕ корректно или готовую функцию трансляции параметров...

Я ничего не забыл?

Или возможны другие варианты решения проблемы?


 
Добежал   (2008-12-09 15:45) [1]

up? (


 
Cobalt ©   (2008-12-09 18:08) [2]

Патч к "Indy от D7"?

А чтобы не откомпилили на "дефолтном" - вставь какой-нить define в патче, а в своём модуле проверяй.


 
Cobalt ©   (2008-12-09 18:08) [3]

Сделай патч к "Indy от D7"?

А чтобы не откомпилили на "дефолтном" - вставь какой-нить define в патче, а в своём модуле проверяй.


 
Добежал   (2008-12-10 11:49) [4]

а, сделал распарсивание параметров просто вручную...



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.003 c
8-1180443656
borodaj
2007-05-29 17:00
2010.11.07
еще вопрос по изображениям )


2-1281389736
Rembo2010
2010-08-10 01:35
2010.11.07
Как считать звук с микрофона?


15-1280386453
бумбум
2010-07-29 10:54
2010.11.07
Имеет смысл ADOConnection1.Open ?


2-1281770096
Artemka86
2010-08-14 11:14
2010.11.07
Вывод информации в StringGrid


4-1240991885
Zalum
2009-04-29 11:58
2010.11.07
Передать работающему приложению параметры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский