Hug*_*hem 0 delphi txmldocument idhttp delphi-xe2 delphi-xe4
我注意到我在使用 Indy Client 的应用程序中的 XML 文件有无效字符(我实际上使用了 IdHttp 的默认参数)
这是我的代码:
ts := TStringList.Create;
try
ts.Add('XML=' + AXMLDoc.XML.Text));
HTTPString := IdHTTPClient.Post('http://' + FHost + ':' + IntToStr(FPort) + FHttpRoot, ts);
finally
ts.Free;
end;
Run Code Online (Sandbox Code Playgroud)
我的 XML 文件是 UTF-8 编码的。
我必须做什么才能在我的服务器上获得良好的编码(我也使用 Indy 作为服务器)?
UTF-8 是TIdHTTP用于提交TStringList对象的默认字符集。真正的问题是TStringList,即使使用正确的字符集,也不应该使用 a开始提交 XML 。原因是因为该TIdHTTP.Post(TStrings)方法实现了application/x-www-form-urlencoded内容类型,因此对TStringList内容进行了url 编码,如果接收者不希望这样,这可能会破坏 XML。因此,除非接收方实际上期待真正的application/x-www-form-urlencoded编码请求,否则应该使用该TIdHTTP.Post(TStream)方法传输XML,以便原始 XML 字节按原样保留。
| 归档时间: |
|
| 查看次数: |
4027 次 |
| 最近记录: |