向TIdHttp请求添加自定义标头,标头值包含逗号

时间:2012-06-13 22:31:03

标签: delphi delphi-xe2 indy10

我正在使用Delphi XE2和Indy 10.5.8.0。我有一个TIdHttp实例,我需要为请求添加一个自定义标头。标头值中包含逗号,因此它会自动解析为多个标头。我不希望它那样做。我需要自定义标头的标头值仍为一个字符串,而不是基于逗号分隔符进行拆分。

我尝试设置IdHttp1.Request.CustomHeaders.Delimiter := ';'但没有成功。有没有办法确保标题不会被拆分?

procedure SendRequest;
const HeaderStr = 'URL-Encoded-API-Key VQ0_RV,ntmcOg/G3oA==,2012-06-13 16:25:19';
begin
  IdHttp1.Request.CustomHeaders.AddValue('Authorization', HeaderStr);
  IdHttp1.Get(URL);
end;

1 个答案:

答案 0 :(得分:5)

我无法使用最新的Indy 10.5.8 SVN快照重现此问题。您显示的字符串将被指定为我的单行。

据说,默认情况下,TIdHeaderList.FoldLines属性设置为True,并且行以逗号和逗号字符折叠,这样就可以解释为什么你的字符串被拆分了。据我所知,您的Indy版本与SVN中的最新版本之间的折叠算法没有任何逻辑更改。