Форум: "Сети";
Текущий архив: 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