【发布时间】:2015-03-23 07:31:44
【问题描述】:
我尝试通过以下代码使用 TIdHTTP(Indy 10.6.0 和 Delphi XE5)测试我的 web 服务:
GIdDefaultTextEncoding := encUTF8;
HTTP.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
Http.Request.UserName := AUser;
Http.Request.Password := APass;
Http.Request.Accept := 'text/javascript';
Http.Request.ContentType := 'application/json';
Http.Request.ContentEncoding := 'utf-8';
Http.Request.URL := 'https://sameService';
Http.MaxAuthRetries := 1;
Http.Request.BasicAuthentication := True;
TIdSSLIOHandlerSocketOpenSSL(HTTP.IOHandler).SSLOptions.Method := sslvSSLv3;
HTTP.HandleRedirects := True;
UTF-8 格式的“AUser”和“APass”。当“APass”具有相同的俄语字符时,我无法登录。 通过“HTTP 分析”我看到:
...
Authorization: Basic cDh1c2VyOj8/Pz8/PzEyMw==
从 Base 64 解码(base64decode.org)我们可以看到:
p8user:??????123
为什么 DefStringEncoding 不起作用?
【问题讨论】:
标签: delphi encoding https indy delphi-xe5