Инди.Ошибка при отправке строки с% - PullRequest
3 голосов
/ 06 февраля 2012

Я использую Indy 9.00.10 под Delphi 7.

Я использую TIdMultiPartFormDataStream для публикации некоторых данных, используя TIdHTTP .Когда я пытаюсь опубликовать какой-либо параметр с текстовым значением, включающим в себя%, например, «100% brand», возникает «Нет аргументов для формата%».

Мне кажется, что он вызывает некоторую функцию форматированияк значению, которое я пытаюсь опубликовать, и он ожидает, что каждый% будет заполнителем, что не является моим случаем.

Это известная проблема?Есть ли обходной путь для этого?

1 Ответ

6 голосов
/ 07 февраля 2012

Вы используете очень старую версию Indy.Последний выпуск Indy 9 был 9.0.50, который доступен в Indy's SVN .Эта проблема была исправлена ​​в 9.0.13.

Если вы не хотите обновлять, то обходной путь состоит в удвоении любых символов '%' в данных вашего поля, чтобы они форматировались как один символ '%'Например:

Stream.AddFormField('FieldName', StringReplace(FieldValue, '%', '%%', [rfReplaceAll]));
...