我在Delphi 7下使用Indy 9.00.10。
我使用TIdMultiPartFormDataStream使用 TIdHTTP 发布一些数据。当我尝试发布一些包含%的文本值的param,例如'100%brand'时,它会引发“格式%没有参数”。
在我看来,它正在调用我试图发布的值的一些格式函数,并且它希望每个%都是占位符,这不是我的情况。
这是一个已知问题吗?它有解决方法吗?
答案 0 :(得分:6)
您使用的是Indy的旧版本。 Indy 9的最后一个版本是9.0.50,可在Indy's SVN中找到。此问题已在9.0.13中修复。
如果您不想升级,则解决方法是将字段数据中的所有'%'
字符翻倍,以便将其格式化为单个'%'
字符,例如:
Stream.AddFormField('FieldName', StringReplace(FieldValue, '%', '%%', [rfReplaceAll]));